原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

iTweenのValueToを使ったアニメ動作

前回の記事の訂正

前回、Crunch圧縮の定義を外す手順で、
 「Use Crunch Compression」のチェックボックスをチェック⇒チェックを外す
と書きましたが、そのあとに
 Unityの再起動をする
という手順が必要でした。再起動しないと設定が有効にならないみたいです。

ここから本題

ゲーム中の演出で、下のような

f:id:Karvan:20180106002945g:plain

アイコンが徐々に現れるアニメを作ろうとした場合、

アイコンのImage(上の場合は矢印のImage)のImageTypeをFilledにしてFillAmountの値をUpdate関数内で徐々に大きくしていくのが一般的かと思いますが、それをiTweenのValueToを使って実現しようというお話。

まずはValueToを実行する関数

    GameObject TargetTweenObj;        // アニメ動作させたいゲームオブジェクト

    /// <summary>
    /// 矢印アニメ動作開始
    /// </summary>
    private void TweenAnimationStart()
    {
        // ValueToの開始
        Hashtable hash = new Hashtable(){
            {"from", 0.0f},
            {"to", 1.0f},
            {"time", 1.0f},
            {"delay", 0.0f},
            {"easeType",iTween.EaseType.linear},
            {"loopType",iTween.LoopType.loop},
            {"onupdate", "OnUpdateArrow"},
            {"onupdatetarget", gameObject},
        };
        iTween.ValueTo(gameObject, hash);
    }


ValueToを実行すると"onupdate"で指定した関数に"from"から"To"まで徐々に変化させた値が引数として渡されてくるので、それを使ってfillAmountの値を変更します。

    /// <summary>
    /// iTweenによるValueToのコールバック
    /// </summary>
    /// <param name="nextValue"></param>
    void OnUpdateArrow(float nextValue)
    {
        // 矢印オブジェクトのImage取得
        Image TargetImage = TargetTweenObj.GetComponent<Image>();

        // 矢印オブジェクトのfillAmount更新 
        TargetImage.fillAmount = nextValue;
    }


今回はValueToの"loopType"にloopを指定しているので、ループを止める場合には以下の関数をコールします。

    /// <summary>
    /// 矢印アニメ動作停止
    /// </summary>
    private void TweenAnimationStop()
    {
        iTween.Stop(this.gameObject);

        Image TargetImage = TargetTweenObj.GetComponent<Image>();
        TargetImage.fillAmount = 1.0f;
    }


で、これを実際のゲーム画面(開発中)で使用してみるとこんな感じ
iTweenを使用するとアニメの動作時間やループの設定等が簡単に行えるので以外と有用な方法かと思います。

f:id:Karvan:20180106005413g:plain

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。