2017-02-03 7 views
0

シンプルなコードを書くのに最高の方法を見つけることができません。私は各イベントでアニメーションを再生する必要があります(例えば、タップ)し、アニメーションの終了を停止する必要があります。Unity3dアニメーションをアイドル状態に戻す

私はアイドルとアクティブの2つのアニメーションを持つオブジェクトを持っています。そして、ブール変数 "状態"。 state == falseの場合、アイドルアニメーションが実行されます。
stateが== trueの場合、アクティブなアニメーションが実行されます。 タップして、ステータスをtrueに変更しています。

問題:

  • 状態が一度変更された場合、値がtrueで、「アクティブ」のアニメーションはもう再生されません。

私はアニメーションが再び開始される仕上げなければなりません

  • 何とか(イベントまたは更新して状態をチェックして)アニメーションの最後をキャッチし、偽

    に戻って状態を変更されます。あなたがMecanimを使用している、あなたの代わりに、ブールのtriggerタイプパラメータを使用することができると仮定すると、非常に困難になって

  • アーキテクチャ(私はこのようないくつかのオブジェクトを持っている場合場合には、それは本当に混乱になります)

+0

アニムネーションクリップなどの使用方法のようなコードを教えてください –

+0

アニメーターコンポーネント、またはアニメーションを管理するためのカスタムソリューションを使用していますか? – Serlite

答えて

0

0

stateブール値がtrueに設定されているため、アニメーションが開始されるという問題があると私は理解しています。アニメーションの最後ではアイドル状態に戻りますが、ブール値が真であるため、アニメーションを再び再生するために戻ります。

ソリューション:AnimationEventをアニメーションに配置し(例として)、ブール値をfalseにリセットするメソッドにリンクします。 https://docs.unity3d.com/ScriptReference/AnimationEvent.html

アニメーションが終了すると、アイドル状態に戻ります。ブール値がリセットされると、アニメーションに戻ることはなく、別のブール値が変更されるまでアイドル状態のままになります。

関連する問題