FC2ブログ
    03 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 05

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【Unity】アニメーション中に他のメソッドを呼ぶ方法?yieldつかっちゃえよ。いやいや、もっと楽な方法あるんすよ!え?しってる? 

    なんか今日暑いっすね。坂内っす。
    今日30度とかいってる場所あるらしいっすよ。
    夏が近づいてる感じがビンビンしますな。

    アニメーション中に他のメソッドを呼ぶ方法。

    もちろん、アニメーションスタートのタイミングで、yieldやInvoke等で、時間指定してもいいですよね。

    あらかじめAnimatorにてTriggerを用意しておくとすると。

    private void ActionSwing(){
    ~~
    animator.SetTrigger("AAAA");
    yield return new WaitForSeconds(1f);
    SoundManager.instance.PlaySE(SoundManager.SE.Swing);
    ~~
    }

    って感じです。
    まぁ、この方法だとアニメーションの特定のタイミングに時間を合わせるのが大変(めんどう)なので、もう一つの方法を。

    Animationの中でメソッドを呼ぶことができます。


    private void ActionSwing(){
    ~~
    animator.SetTrigger("AAAA");
    yield return new WaitForSeconds(1f);
    ~~
    }

    public void SoundSwing(){
    SoundManager.instance.PlaySE(SoundManager.SE.Swing);
    }

    とコードでは書いておいて



    Animationウィンドウの「ここ」って書いてるあたりを右クリックをして「Add Animation Event」を選択します。
    そうすると、こんなウィンドウがでるので、ここでメソッドを選択。



    もちろん、このアニメーションがついているオブジェクトに、呼びたいメソッドが入っているスクリプトをつける必要があります。

    こうすることで、アニメーションの好きなタイミングで他のメソッドを呼べますよ!ヤッタネ!

    ということで、これなんて言うんです?アニメーションイベント?の使い方でした!

    アデュ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/199-ce0c54ce
    この記事にトラックバックする(FC2ブログユーザー)