@Coddee.

Unity/C#とか、PHP/MySQLとか。ぺーぺーがプログラムの備忘録も兼ねて。

【Unity/C#】2Dオブジェクトの平行移動や回転とか。

主機能+αで、オブジェクトを動かしてみる

f:id:yadukkii:20151005234006p:plain:w150:right
『時計の機能だけでは、なんとなくさみしい...』

右の画像が今作っているモノの途中経過。
時計が主機能で、後々にアラート設定ができるようにしたいなーなんて考えています。
これを踏み台に、みんなの嫁が朝起こしに来る...的なのを作りたいなとw

で、実は図の中のちびキャラが背景で回転するようになっているのですが、これがまた詰まったトコロ。
というより、初めて使う関数や処理とかは、全部詰まってる気がする...

平行移動は「transform.Translate()」

public class moveChar : MonoBehaviour
{
    Rigidbody2D rb;
    void Start ()
    {
        rb = GetComponent<Rigidbody2D>();
    }
    void Update ()
    {
        var v = new Vector2(0.5f, rb.velocity.y);
        transform.Translate(v);
    }
}

このimageオブジェクトには Inspector>Physics>Regidbody 2D を設定した後、上記プログラムを組むと動くようにはなります。
「Vector2( X, Y )」のX軸に対し、1フレームに 0.5f ずつ進むようになっています。
これで横には進むようになったのですが、画面外に行ったり、スッスと横切るだけになったため、回転させてランダムに進むよう更に調整します。

回転は「transform.Rotate()」

    void Update ()
    {
        transform.Rotate(new Vector3(0.2f,0.1f,0.4f));
    }

「Vector3( X, Y, Z )」なので、薄っぺらい2Dオブジェクトが複雑な回転をするような動きになります。
組み合わせることで、背景にimageオブジェクトが回転しながらランダムに宙を回っているような動きが再現できました。

..まぁここまで来て、目覚まし機能が全然進んでいないことに気づき、今。
反省の念ばかり...w