LoginSignup
4
8

More than 5 years have passed since last update.

GameObjectを円運動させてみた

Posted at

1.狙い

GameObjectを円運動させるだけなら、調べれば簡単にできますが、円運動する座標が決まっており、いくつ配置しても同じ場所でしか円運動を行わないものがあったので、プレハブ化した後に好きな場所にオブジェクトをおいてそこから円運動を行えるようにしました。

2.手順

1.3DObjectを作成する(Cube・Sphereなど重くならないものをお勧めします)。
2.3DObjectにC#scriptをアタッチする。
これらのやり方がわからない場合は、前回の投稿を参考にしてください。

※SphereをCubeに当てたら100が表示。
https://qiita.com/uroshinse/items/9962480517359a9175fb

3.ソース

C#スクリプトを編集します。

public class CubeRotate : MonoBehaviour {
    private int speed;                //オブジェクトのスピード
    private int radius;               //円を描く半径
    private Vector3 defPosition;      //defPositionをVector3で定義する。
    float x;                         
    float z;

    // Use this for initialization
    void Start () {
        speed = 1;
        radius = 2;

        defPosition = transform.position;    //defPositionを自分のいる位置に設定する。
    }

    // Update is called once per frame
    void Update () {
        x = radius * Mathf.Sin(Time.time * speed);      //X軸の設定
        z = radius * Mathf.Cos(Time.time * speed);      //Z軸の設定

        transform.position = new Vector3(x+defPosition.x,defPosition.y, z+defPosition.z);  //自分のいる位置から座標を動かす。



    }
}

入力したら再生ボタンを押してみましょう。

movie.gif

4. 参考サイト

Unity3DCG
https://uni.gas.mixh.jp/unity/circle.html

5.作ってみて

自分は電気を専攻してそれなりになじみがあったので、すんなり理解できた。
Sin・Cosを使って別の動きも試してみたが、応用で上下運動の繰り返しもできるので幅広く使うことができる。
次回は運動の繰り返しについての記事を投稿します。

4
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
8