Google

2011年9月30日金曜日

モノビヘイビア

昨日の記事の続き。

エンジニア側からすれば、昨日紹介したクラス制御が仕事のメイン。
つまりMonoBehaviour派生クラスの実装が作業の中心となります。

しかしGUI型ツールの宿命というべきか、要所要所でGUIを触るという作業が必ず入ります。
スクリプトオンリーでFWと対話し、ゲームを作るのは困難なように思えます。
共同作業が当たり前のこの世界ならなおさらでしょう。

ということで、Unityはまだまだ発展途上。
ぐちってもしょうがないのでMonoBehaviour派生クラスの作り方からいってみましょー。
昨日いきなりクラス図を出した反省を込めてw、スクショ付きです。

あ、レイアウトは好みによっていろいろ変えられます。
これはあくまで一例なので、読者さんの環境と相違する場合もあります。

Step1. ソースの生成

Unity上にProjectというタブがついたエリアがあります。
そこをクリックするとメニューが出るので、「C# Script」を選択。
あちこちでJavaScriptの例ばっかなので、このブログではC#オンリーとします。
ちなみにこれ、メニューのAssets->Create以下の構成と同一です。

Step2. 名称変更中

Step1を行うと、名称が変更できる状態で「NewBehaviourScript」という項目が出ます。
このまま確定するとこの名称のクラスができますが、実はこの状態で名称変更をすると、クラス名まで一緒に変更してくれます。
大抵の言語では当たり前ですが、ファイル名とクラス名は一致しなければなりません。
間違えてNewBehebiourScriptで確定してから変更しようとすると二度手間。
なのでこの時点で変更すると楽ですな。

Step.3 名称確定


今回は「SampleScript」としてみました。
本来なら名が体を表すように付けるのが基本ですがサンプルなので。

ここで注意点がひとつ。
実はUnityのProjectツリーはOS上のディレクトリ構成を表示しているだけです。
言い換えるとファイルエクスプローラ or Finder or ファイラー。
各シーンで使用する可能性がある、単なるリソース格納庫のビューアです。
Ctrl-Zを何度押そうが、Undoは効きません
代わりに、ファイルエクスプローラ等でこのディレクトリにファイルを入れたり削除しても、そのままUnity上に反映されます。

Step.4 GameObject生成

Unityは常になんかしらシーンが存在というか表示される状態になってます。
空っぽのプロジェクト作っても同様です。
ではこのシーン上に空っぽのGameObjectを生成してみましょう。
SampleScriptが振る舞うための宿主が必要ですからね。


メニューのGameObject->Create Emptyを選択。
これで「Gameobject」という名のGameObjectが生成されました。
これだけだと、こいつにはTransformコンポーネントしかついていません。

Unityの概念はFlashに結構似ていて、シーンにあるものは実行時にインスタンスになるべきものを予め配置しておく形になります。
したがってこの手順で生成すればそのまま実体が確定というわけです。
有名なプレハブという概念もありますが、エンジニア向けの解説はまた今度。

Step5. 紐付け


昨日の記事で、GameObjectとの関連付けを手動でと書きましたが、ここがそれです。


スクショには写ってませんが、SampleScriptをHierarchy上のGameObjectにドラッグ&ドロップしてください。
行なってもダイアログも何も出ませんけど。
結果がこちら。


右端に見えるインスペクタが変化しています。
紐付けされた証に、SampleScriptの文字が見えますね。
これでGameObjectはSampleScriptで振る舞いを表現するようになりました。
この順番は、実装してからでも、先でもどっちでも構いません。
要はヒモ付してからもガリガリ変更を記述できるということです。
変数に注意点がありますが、それはまた今度。

注意点としては、1つのスクリプトに同じものでも別のものでも、複数個紐付けできてしまうという点。
ダイアログも何もでないのが不親切ですね。
ちなみに紐付けを外すなら、この変化した部分にある歯車をクリックして「Remove Component」で削除できます。

これで紐付けができました。
この組み合わせで使っていくのが基本になります。

0 件のコメント:

コメントを投稿