‫また来るよ｡
‫このビデオでは､ 前回のビデオで作成した新しいビヘイビアスクリプトについて見ていきます｡
‫自分でスクリプトを作成したい場合は､ アセット内で右クリック→作成→C-sharpスクリプトをクリックします｡
‫スクリプトを作成するもう一つの方法は､ 例えば､ ゲームオブジェクトの一つ､ 例えば立方体をクリックします｡
‫次に､ コンポーネントを追加します｡
‫ここで右側に､ 新しいスクリプトを作成することができます｡
‫ここで名前を追加し､ 新しい動作スクリプトを追加し､ ここで言語を選択することができます｡
‫ですから､ JavaScriptでプログラミングしたい場合は､ ここでもそれを選択し､ 作成､ 追加するだけで､
‫assetsフォルダに追加されるのです｡
‫でも､ もう脚本があるから､ このやり方はしない｡
‫では､ そのスクリプトを開いてみましょう｡
‫そして通常､ ダブルクリックすると､ 例えばVisual
‫StudioのようなIDEで開きます｡
‫しかし､ 私はVisual Studioを使うことを強くお勧めします｡
‫わかりました｡
‫この新しいビヘイビアスクリプトを見てみましょう｡ まだ1行も､ 1つのシンボルも書いていないのに､
‫すでに16行のコードがあります｡
‫つまり､ 3行のusing somethingがあり､ これは名前空間を使用していることを意味します｡
‫これらは､ スクリプトに多くの機能を追加するモジュールで､ この機能を使用できるようにするものだと考えてもよいでしょう｡
‫ということで､ 私たちも現在使っていないのです｡
‫ご覧の通り､ これらはグレーアウトしていますが､ ユニティエンジンの機能の一部を使用しています｡ モノ・ビヘイビアはユニティエンジンの中にあるクラスの1つなので､
‫モノ・ビヘイビアの中でそれを行っているのです｡
‫モノの挙動についてもっと知りたい方は､ コマンドキーを押しながらモノの挙動を押してみてください｡
‫このクラスに関する情報は､ 初心者のあなたには少し多すぎるかもしれませんが､
‫すでにプログラミングを知っている人なら､ 理解できるかもしれません｡
‫結局のところ､ ゲームやスクリプトで使える手法はたくさんあるんです｡
‫わかりました｡
‫では､ 何があるのでしょうか？
‫New Behavior Script Colon, mono behaviorというパブリッククラスがあります｡
‫このコロンは､ mono ビヘイビアを継承していることを意味し､ mono ビヘイビアの機能を使用できることを意味します｡
‫そして､ このクラスの振る舞いがあるのですが､ このクラスはモノの振る舞いです｡
‫だから､ そういうものの中に､ すでにあるスタートとアップデートのメソッドがどこかにあるのです｡
‫ですから､ startメソッドやupdateメソッドがいつ呼ばれるかを正確に書く必要はありません｡
‫これはすべて､ 私たちのUnity Engineの名前空間の中で行われます｡
‫だから､ そこに全部書いてあるんです｡
‫そのコードを書く必要はないのです｡
‫そのため､ 今では超シンプルに作ることができるようになりました｡
‫単純に､ startメソッドが呼ばれたときに何かしたい､ そしてupdateメソッドが呼ばれるたびに何かしたい､
‫と言えばいいのです｡
‫この2つのメソッドはクラス内にあり､ 一般的にクラスはこのように構築されます｡
‫変数があり､ メソッドがあり､ 独自の変数を作ることができる｡
‫次のビデオでそれを行い､ 独自のメソッドを作成することもできますし､ 内部ですでに作成されているメソッドを使用することもできます｡
‫だから､ 自分たちで作る必要はなく､ 呼び出すだけでいいし､ それをオーバーライドして自分たちで作ることもできる｡
‫しかし､ そのすべては､ 現地に到着次第､ カバーする予定です｡
‫今のところ重要なのは､ 自動的にクラスが作成され､ 自動的に2つのメソッドを持つということです｡
‫では､ どんなことをすればいいのか､ 簡単に見てみましょう｡
‫例えば､ コンソールにprint文を書いてみましょう｡
‫例えば､ startメソッドが呼ばれたと言って､ updateメソッドでは同じことをするわけです｡
‫Print updateメソッドが呼び出されました｡
‫これで､ コンソール内のunityで､ いつ何が呼び出されたかという情報を得ることができます｡
‫では､ どの時点でstartメソッドが呼ばれ､ どの時点でupdateメソッドが呼ばれたのでしょうか？
‫この2つのメソッドは何をするものなのでしょうか？
‫STARTメソッドは､ 新しいビヘイビアスクリプトを含むゲームオブジェクトが作成されたときに最初に呼び出され､
‫その後､ 1フレームごとにupdateメソッドが呼び出されます｡
‫つまり､ オブジェクトが存在すれば､ 1フレームに1回､ 常にupdateメソッドが呼ばれることになります｡
‫例えば､ 1秒間に60フレームあるとすれば､ このupdateメソッドは60回呼ばれることになります｡
‫その一瞬のうちに｡
‫わかりました｡
‫そのことを先に確認しておきましょう｡
‫では､ そのスクリプトを保存してみましょう｡
‫そして､ 次はUnityです｡
‫このまま実行しても､ コンソールには何も表示されません｡
‫見ての通り､ ここで遊びを極限まで追求しないほうがいいのかもしれません｡
‫では､ もう一度実行してみましょう｡
‫コンソールにアクセスすると､ 何も起こらないことがわかります｡
‫そのため､ 例えば､ 新しい動作スクリプトをキューブに追加しても､ 情報は出力されませんでした｡
‫すると､ この右側に表示されるようになります｡
‫そこで､ キューブをクリックすると､ 右側のインスペクタに､ 新しいビヘイビアスクリプトが表示されます｡
‫そして､ 例えば､ 削除することもできますし､ 交互にこのようにドラッグすることもできます｡
‫そこで､ ドラッグを使うように追加しました｡
‫その部品をもう一度取り出してください｡
‫そして3つ目の方法は､ コンポーネントを追加して､ スクリプトに移動し､ この新しいビヘイビアスクリプトを追加することです｡
‫これで､ キューブにスクリプトが搭載されました｡
‫今､ このコードを実行すると､ ここで別のストーリーが見えてきます｡
‫コンソールを見てみると､ startメソッドが呼ばれたときは最後に1がついています｡ これは1回だけ呼ばれたことを意味し､
‫updateメソッドが呼ばれたときはすでに500回呼ばれています｡
‫ということは､ 1フレームごとに呼び出されているということですね｡
‫ですから､ ご覧のように､ まあ､ 1秒間に何フレームあるかは､ 30とか50とか､ そんな感じで大まかに見積もっていただければと思います｡
‫だから､ 非常に何度も呼ばれるし､ それを考えなければならない｡
‫ですから､ updateメソッド内にコードを書くときは､ 多くの情報を読み込むような重いコードや､
‫さまざまな機能を実行するようなコードを書いてはいけません｡
‫そのため､ updateメソッドを軽量化し､ 初期化にはSTARTメソッドを使用します｡
‫その意味は､ コースを進めるともっとよくわかると思います｡
‫だから､ 初期化の意味が分からなくても心配はない｡
‫このプリント文の意味が分からなくても心配はありません｡
‫まあ､ 結局､ 本当に番組制作サービスのためだけなんですけどね｡
‫それは､ 私たちがそれを知って､ 何が起こっているのかを団結して理解するためなのです｡
‫それが､ 今､ 自分たちで書いたものなんですね｡
‫そのため､ 例えばプレーヤーがどのような値を持っているかを確認することができます｡
‫例えば､ 何点持っているかとか､ ボタンをタップしたかとか､ そういうことですね｡
‫そのために使えるのが､ これです｡
‫あと2つ｡
‫まだ説明していないのは､ 2つの前方スラッシュで､ 2つの前方スラッシュはこの行がコメントであることを意味します｡
‫ですから､ このダブルスラッシュに続くものは､ すべてゲーム内では考慮されません｡
‫実行されるわけでもなく､ 何もしない｡
‫これは､ 私たちがコードを読みやすくするために､ コードの中で私たちのためにあるのです｡
‫だから今､ 私たちは理解しているのです｡
‫さて､ startメソッドは初期化のためのメソッドです｡
‫updateメソッドは1フレームに1回呼び出されます｡
‫なるほど､ とても参考になりました｡
‫わかりました｡
‫次に､ 何かの始まりと終わりを中括弧で囲んでいるわけです｡
‫これが授業の始まりで､ これが終わりなんですね｡
‫スタート方式も同じです｡
‫これがメソッドカーリーブラケットオープンの始まりで､ これがメソッドカーリーブラケットクローズの終わりです｡
‫そしてもちろん､ すべての文､ たとえばこのprint文の後には､ セミコロンが必要です｡
‫よし､ いいぞ｡
‫以上､ ごく基本的なことをご紹介しました｡
‫そして､ 次のビデオでは､ 変数について見ていきます｡
‫また､ ここで見たことがすべて理解できなかったとしても､ 心配はいりません｡ 後ほど､ より良い感触を得ることができるでしょう｡