キー入力+アニメーション起動

キー入力によるループアニメーションの開始


キーを押したらループアニメーションを開始させるには animator のステート変更で exit や w_anim ステートに遷移しないようにする。

Transition の線を削除するには、Transitionの線を選択して Inspector の Transitionsリストで「-」ボタンを押す。

キー入力によるループアニメーションの開始と停止

アニメーションのオン・オフをキー入力で切り替えるには戻る方向のTransitionにもconditionとしてTriggerを設定する。


Has Exit Time を ON にする。

※ Has Exit Time をオフにするとキー入力によりアニメーションが中断する。その際に位置のずれが発生する場合がある。

キーを押している間だけアニメーションさせる


参照: UnityのMecanimで個別のAnimationを一時停止する

キー入力中に角度が変化して斜めに傾く板を作成する。

シーンに

Create Empty から 空のゲームオブジェクト slopeP を作成する。

位置を床の付近に移動しておく。板を回転させる規準位置(pivot)として利用する。

同様に、slope を Cubeから作成する。スケールを変更して板状にする。

slopePの階層に加える(子供にする)

回転の規準位置が slopePとなるように移動して調整する。

板に上下するアニメーションを設定する。

slopeP の animation ウインドウで以下の画像のように設定する。

中間フレームのキーの設定の様子:

slopeP の AnimatorにParamatorを設定する。名前は speed とする。C#のコードで使用する名前なのでよく確認すること。


s_anim モーションを選択してInspectorから Multiplier(アニメーションの再生速度。0で停止。マイナスで逆再生)を speed に設定する。

C#スクリプト SpeedKeyQ を作成する。

slopeP にスクリプトをアタッチする。