「ガッツポーズ」「ジャンプポーズ」のアクションを追加しよう。この処理は、連載第7回の「StateとTransition(メカニムステートマシン)」で解説しているので、参照してほしい。今回はそれぞれ名前を「WIN00」「JUMP00」とした。
全て設定すると、図19のようになる。
Hierarchyから「GutsPoseButton」と「JumpPoseButton」を同時に選択しておいて、Inspectorから「Add Component」→「New Script」を選択し、「Name」に「ButtonAction」、「Language」に「C Sharp」を指定して、「Create and Add」ボタンをクリックする。
Inspectorに「Button Action(Script)」が追加されるので、「Script」の「ButtonAction」をクリックしてVisual Studioを起動し、リスト1のコードを記述する。
private Animator anim; private GameObject obj; void Start () { obj = GameObject.Find("unitychan"); anim =obj.GetComponent<Animator>(); } public void UnitychanWinAction() { anim.SetTrigger("winning"); } public void UnitychanJumpAction() { anim.SetTrigger("jumping"); }
まず、Animator型の変数「anim」とGameObject型の変数「obj」を宣言する(1〜2行目)。
Start関数内では以下の処理を行う。Findメソッドで「unitychan」にアクセスし、変数「obj」で参照しておく(4行目)。GetComponentで「Animator」にアクセスし、変数「anim」で参照しておく(5行目)。
ユニティちゃんがガッツポーズを取るUnityChanWinAction関数を作成し(8行目)、SetTriggerで、図22のTrigger型のパラメーター「winning」を指定する(10行目)。必ずpublicな関数として作成する。
ユニティちゃんがジャンプするUnityChanJumpAction関数を作成し(13行目)、SetTriggerにTrigger型のパラメーター「jumping」を指定する(15行目)。必ずpublicな関数として作成する。
SetTriggerは、トリガーのパラメーターをアクティブに設定する関数だ。
最後に必ずビルドしておこう。
なお、JavaScriptのコードも記載しておく、コードの解説はC#と同じだ。JavaScriptで書きたい場合は、連載第5回のコラム「スクリプトエディタの切り替え」を参照されたい。
private var anim:Animator; private var obj:GameObject; function Start () { obj=GameObject.Find("unitychan"); anim=obj.GetComponent(Animator); } function UnityChanWinAction() { anim.SetTrigger("winning"); } function UnityChanJumpAction() { anim.SetTrigger("jumping"); }
次に、リスト1のUnityChanWinActionメソッドとUnityChanJumpActionメソッドを各Buttonと関連付ける。
まず、Hierarchyから「GutsPoseButton」を選択し、表示されるInspectorの「Button(Script)」の一番下にある、「On Click()」の「+」をクリックする(図20)。
すると、「On Click()」の内容が図21のように変化する。
図21の「None(Object)」と書いてある個所に、Hierarchy内の「GutsPoseButton」をドラッグ&ドロップする(図22)。すると、「No Function」が使用可能になる。
図22の状態から「No Function」の右端にある「上下▲▼」ボタンをクリックし、「ButtonAction」→「UnityChanWinAction」と選択する(図23)。
このとき、リスト1のC#の場合は、UnitychanWinActionメソッドをpublicな関数として作成しておかなければ、ここに表示されないので、注意してほしい。
同様に、Hierarchyの「JumpPoseButton」に関しても同じ手順で、今回は「UnityChanJumpAction」を選択する。「None(Object)」と書いてある個所に、Hierarchy内の「JumpPoseButton」をドラッグ&ドロップすることを忘れないようにしてほしい。
このように、2つのButtonには前述の「ButtonAction」スクリプトの関数を追加しておくことを忘れないでいてほしい。
実行してみると、動画3のようになる。
Copyright © ITmedia, Inc. All Rights Reserved.