05 «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.» 07

ハルシオンシステムの気まま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.blog.fc2.com/tb.php/10-29b505c5
この記事にトラックバックする(FC2ブログユーザー)