FC2ブログ
    08 «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.» 10

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

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

     

    【Unity】オブジェクトの移動(その1) 

    水曜日担当の秋山です。

    今日はオブジェクトの移動に関して書いてみます。
    基本的すぎる内容ですが、とりあえずMathf.SinやCosを利用した移動からです・・・・
    利用している言語はC#になります。

    オブジェクトの単純な移動に関しては、別記事で紹介しているiTweenを利用したほうが簡単です。
    iTweenを利用しないで反復運動を行う場合を記載します。


    Vector3 start_posi;
    Vector3 move_posi;
    void Start () {
    start_posi = transform.position; //スタート地点を記憶
    }

    void Update () {
    move_posi = new Vector3(0,0,Mathf.Sin(Time.time)); //移動する値を取得
    this.transform.localPosition = start_posi + move_posi; //目的地に移動
    }


    Time.time = ゲーム開始からの時間を返す(読み取り専用)

    これはZ軸上での-1~1の幅で反復移動します。
    ・Unity上での「1」は1m分の移動。
    移動距離を伸ばしたい場合、Mathf.Sinの値に 2や3を掛けると2m,3mと伸ばせます。
    また、運動の向きを反対にする場合、Mathfの値に負の値を掛ければ逆になります。

    円運動を行う場合は以下のパターンなどがあります。
    1) move_posi = new Vector3(Mathf.Cos(Time.time),0,Mathf.Sin(Time.time));
    2) move_posi = new Vector3(Mathf.Cos(Time.time),Mathf.Sin(Time.time),0);

    また、運動の向きを反対にする場合、Mathfの値に負の値を掛ければ逆になります。

    もっと簡単な方法などありそうですが・・・

    とりあえずここまでです。

    Category: 開発日記(Unity)

    Thread: 日記

    Janre: 日記

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

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