Unity 2D 円運動
Unity 2Dで円運動をする関数
まずはじめに,移動速度と円運動する半径を定義しておく
public float moveSpeed = 1.0f;
public float circle_radius = 1.0f;
初めの位置を固定したい場合は以下も用意
private Vector2 initPosition;
void Start () {
initPosition = transform.position;
}
initPositionは初期位置
transform.positionを利用する場合について
Vector2 pos = transform.position;
で自分の位置を取得する.
次に
float rad = moveSpeed * Mathf.Rad2Deg * Time.time;
そして
pos.x = Mathf.Cos(rad) * circle_radius;
pos.y = Mathf.Sin(rad) * circle_radius;
でX軸,Y軸に三角関数を利用した移動先を与える.
transform.position = pos + initPosition;
最後にオブジェクトの位置を変更してあげればOK!
これを
void Circle()
{
Vector2 pos = transform.position;
float rad = moveSpeed * Mathf.Rad2Deg * Time.time;
pos.x = Mathf.Cos(rad) * circle_radius;
pos.y = Mathf.Sin(rad) * circle_radius;
transform.position = pos;
}
このような関数にしてあげて,Update()の中に入れてあげればOK!