参考動画
コード
transform.Rotate(Vector3.up,rotation_speed*Time.deltaTime);//回転
float updown = startposition.y + Mathf.Sin(Time.time * updown_speed) * 0.5f;//上下の動き
transform.position=new Vector3(transform.position.x,updown , transform.position.z);
startposition.yはオブジェクトの開始地点のy座標を表している
Sin関数の動き
例えば、Mathf.Sin(Time.time)を実行したとき1から-1の間を繰り返す動きになる
sin関数を使うことで波のような動きになるので滑らかな動きを再現できる
sin関数の制御
Mathf.Sin(Time.time * updown_speed) * 0.5f
updown_speed
は上下の動作速度を表している
0.5fをかけることで可動域を0.5から-0.5に可動域を設定できる
まとめ
アニメーションのように滑らかな動きを作りたいときに使える!