万年素人からHackerへの道

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

UnityScript setプロパティの罠

UnityScriptに限ったことではないが、C#では検証してない。
今回NGUI付属のTweenPositionのセットをプロパティでやっていたが、
valueをそのまま使って+演算子を使うと怒られた

    public function set SetPosition (value : Vector3) {
        var tweenPosition : TweenPosition = hogeObj.AddComponent(TweenPosition);
        tweenPosition.method = UITweener.Method.EaseOut;
        tweenPosition.style = UITweener.Style.Loop;
        tweenPosition.from = value;
        tweenPosition.to = value + Vector3.left * 100; // ←ここで怒られる!
    }

いったんvec3にvalueを対比させてそれを使ったらOKでした。

    public function set SetPosition (value : Vector3) {
        var vec3 : Vector3 = value; // ←こうすると〜
        var tweenPosition : TweenPosition = hogeObj.AddComponent(TweenPosition);
        tweenPosition.method = UITweener.Method.EaseOut;
        tweenPosition.style = UITweener.Style.Loop;
        tweenPosition.from = vec3;
        tweenPosition.to = vec3 + Vector3.left * 100; // ←怒られない
    }