[UNITY/日記]物理演算の移動はちゃんとTranslateじゃなくてRigidBody使えよって話

UNITY

どうもえんちゃさんです。
言いたいことはタイトルに書いてあるんですが、あれですね。

いつも作ってるゲームで、そろそろ敵キャラ作りたいなーって思うんですよ。
んで、敵キャラ作りました。


あらかわいい

しかしこいつを動かすときのプログラムを

this.transform.Translate([X],[Y],[Z]);

にしたんですね。オブジェクトの座標を変えるプログラムです。

そしたら….上に乗れないんです。。。龍宮城に連れて行ってくれないんです。(錯乱)

オブジェクトの座標を変えるってのは、あくまで座標を変えるのであって、コマ送りで進んで行きます。つまり、亀は移動しているが速度はゼロ
つまり、上のものはついてこないということにいーまさら気づきました。

   private Rigidbody2D rb;
    void Start()
    {
        rb = this.GetComponent();
    }

    void Update()
    {
        rb.velocity = new Vector2(1.5f, 0);
    }

ということでしっかり物理演算処理に書き直して速度で移動するようにしましょう。

乗れましたー!(今更)

ああもしもし亀よ、亀さんよ。いまわたしの願い事が叶うならば私を二郎京成大久保店に連れてっておくれ(錯乱)

コメント

タイトルとURLをコピーしました