回答編集履歴
1
別の方法を追加
answer
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
|
1
|
+
オブジェクトを移動させる方法として色々ありますが、`transform.translate`が比較的一般的です。
|
2
2
|
キーを押し目的地を決めてその後一定スピードでそこに移動させたいなら以下のような方法があります。
|
3
|
-
|
4
3
|
1. 目的地の座標と現在の座標の差分をとり、何フレームで移動したいかを決めて、1フレーム当たりの移動量を算出し、transform.translateで規定のフレーム数だけ移動させる
|
5
4
|
|
6
|
-
2. 移動量をあらかじめ決めておき、目的地の座標と現在の座標からベクトルを求め、1フレーム当たりのx,y,z座標の移動量を算出し、transform.translateで移動させ、目的地の一定範囲に到着したら移動を止める
|
5
|
+
2. 移動量をあらかじめ決めておき、目的地の座標と現在の座標からベクトルを求め、1フレーム当たりのx,y,z座標の移動量を算出し、transform.translateで移動させ、目的地の一定範囲に到着したら移動を止める
|
6
|
+
|
7
|
+
他にも、transform.positionを使うならMoveTowardsを使用すると以下のような記述で一定速度で目的地まで進みます。
|
8
|
+
```
|
9
|
+
transform.position = Vector3.MoveTowards(transform.position, targetPosition, Time.deltaTime);
|
10
|
+
```
|