前回まででブレンダーで作ったキャラの左腕をあげることができました。
今回はボタンを押したら腕をあげるようにしたいと思います。
create → UI → Button
でボタンを2つ作成。名前をLeftButton、RightButtonにしました。LとRのボタンを上の図のように配置します。
Lボタンを押すと左腕をあげさせます。
今はシーンを再生すると自動的に左腕をあげるアクションをするようになっています。ボタンを押したときに動かすにはトリガーを設定すると良いそうです。
プロジェクトビューのアニメクリップをダブルクリックしてアニメータービューにしてParameters タブの+をクリック。Triggerを選択します。名前をLeftTriggerにしました。
StandからLeftUpを繋ぐ矢印を選択してインスペクターのHas Exit Timeのチェックを外します。Transition DurationとTransition Offsetの値を0にします。
Conditionsの+をクリックしてLeftTriggerを選択します。
トリガーを設定したので自動的に左腕をあげなくなりました。^-^
次にボタンを押したときにトリガーを引くようにスクリプトを書きます。Create→C#Script
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //UI使うのに必要 public class MainV : MonoBehaviour { public Animator animator; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } //Lボタン押した public void PushL() { animator = GameObject.Find("blood-Ugoku2-Action1-5").GetComponent<Animator>(); animator.SetTrigger("LeftTrigger"); } }
create Empty で空のオブジェクトを作ってゲーム監督にします。名前をKantokuにしました。書けたスクリプトをこれにD&D。次にLeftButtonのOnClickの+押してobjectの欄にKantokuをD&D。関数の欄にさっき書いたスクリプトのPushLを選択します。
実行してみるとLボタンを押すとちゃんと左腕をあげました!やった^^v
ただこのままだとずっと左腕をあげたままになります。腕をあげたらまた元の直立Stand状態に戻したいと思います。
LeftUpのアクションを選択してMake Transitionで矢印をStandに接続。矢印を選択してHas Exit Timeにチェックを入れる。Exit Timeを0、Transition Durationを0.5、Transition Offsetを0に設定。
ボタンを押すと1回左腕をあげてその後はゆっくりと元のStand状態になりました! ^0^
なんかどれもすんなり成功してびっくり。
やる前にいろいろ読んでたらなんか難しそうだなーって思いましたが実際やってみると意外と簡単に動かせました!(^∇^)
////////////////////////////////////////
ー広告ー