「ガッツポーズ」「ジャンプポーズ」のアクションを追加しよう。この処理は、連載第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のようになる。
Gear VRとは――UnityでAndroidアプリを開発するための環境構築
HoloLens用Unity 5のプロジェクトをUWPとして書き出しエミュレータで動かす
UnityでWebカメラの画像をリアルタイムで複数テクスチャとして表示する&Kinectセンサーと連動させるCopyright © ITmedia, Inc. All Rights Reserved.