万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Unity Advent Calendar 2012 5日目 Title:「GoKit実践 シーン2. Tween Chain」

URL: http://atnd.org/events/34621
今日も僕。

「GoKit実践 シーン2. Tween Chain」します。


Project内の2. Tween Chainを開きます。
「トゥイーン"ちゃん"」って読みそうになりました。
「チェイン」でした。

Cubeなど沢山あるが、uiだけ見ればいいと思います。

すると、TweenChainGUI.csがInspector上にありますね。

このシーンで行なっていることは複数のアニメーションを
合体させてあたかも1つとして扱うことだともいます。

・TweenChainGUI.cs

using UnityEngine;
using System.Collections;

public class TweenChainGUI : BaseDemoGUI
{
    // ここでHierarchyの4個のキューブたちをInspectorで設定しておく
    public Transform[] cubes;
    
    void Start ()
    {
        // (1)前回同様TweenConfigで4つのキューブに対するTween用の設定です、あとで使ってます。
        var config = new TweenConfig ()
            .setEaseType (EaseType.QuadIn) // Tweenの種類
            .materialColor (Color.magenta) // マゼンタ色
            .eulerAngles (new Vector3 (0, 360, 0)) // Y軸に対して360度回転する(※オイラー角なのでラジアン角ではない)
            .position (new Vector3 (2, 8, 0), true) // 右に2上に8移動するよ。trueは今の位置から右上になるが、falseにすると、それぞれが同じ座標に行きます。右にもともといるCubeは左上に行く
            .setIterations (2, LoopType.PingPong); // 行って帰ってくるループです。(行き+返り=2ですね。)
        
        // 4つのキューブの一連の動作が何回やるか?今回は2回です。int型
        var chain = new TweenChain ().setIterations (2);
        
        // ここで一連の動作が終わった時に行うものを設定できます。
        // ラムダ式の引数がcとなってますが、ahoとかでもOK
        // cはchainの楽かな?
        chain.setOnCompleteHandler (c => Debug.Log ("chain complete"));

        // 4つのCubeに対してTweenをセットしています。(1)の設定ですね。0.5秒で終える
        foreach (var cube in cubes) {
            var tween = new Tween (cube, 0.5f, config);
            chain.append (tween);
        }
        
        _tween = chain;
    }
}

次回はお願いします
多分僕になるので「シーン3. Tween Flow」かもね。
タイムスケールのこともやるかも?