LoginSignup
0
1

More than 5 years have passed since last update.

【Unity】何かを動かす時に必ずやるべきこと

Last updated at Posted at 2019-02-13

今回やること

Unity上でオブジェクトを動かしたりする時にやっておくべきことをご紹介します。

例えば

1秒間にX座標60移動させるとします。

Move.cs
{
    transform.position=new Vector3(0,0,0);
    void Update()
    {
        transform.position += new Vector3(1,0,0);
    }
}

これを60fpsの状態で起動すると毎秒60移動していることになります、ですがこれが30fpsになると毎秒30しか進まなくてなってしまいます。
なら60fpsでいいじゃんって話なのですが必ず60fps出る保証もありません。ではどんなfpsでも毎秒進む距離が変化しない状態にするにはどうすればいいのかというと。

Time.deltaTimeを使う

このTime.deltaTimeってなにかというと「1 / 現在出ているfps」が戻り値として取得できます。
つまり60fps時なら「約0.0166」30fpsなら「約0.0333」を返してくれます。
それを元にコードを書くと。

Move.cs
{
    transform.position=new Vector3(0,0,0);
    void Update()
    {
        transform.position += new Vector3(60*Time.deltaTime,0,0);
    }
}

これでどんなfpsが出ていても1秒後には限りなく60に近い数値になります。
fpsの数値によって動く速さが変わるのはあまりよろしくないと思うのでこのようにどんなfpsになっても1秒間に動く距離が変わらないようにしてあげると良いと思います。

0
1
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
0
1