我希望将我的船移动到我点击的位置,但要实现逼真的运动和旋转:
经过一番研究和尝试,我并没有找到想要实现的方法。感谢您的帮助。
(http://i.imgur.com/Pk8DOYP.gif)
这是我的代码(附加到我的船游戏对象上):
基本上,当我点击某个位置时,它会移动船直到它到达我最初点击的点(我为您简化了我的代码)。
using UnityEngine;
using System.Collections;
public class BoatMovement : MonoBehaviour {
private Vector3 targetPosition;
private float speed = 10f;
private bool isMoving;
void Update(){
if (!isMoving && Input.GetMouseButton (0)) {
targetPosition = Camera.main.ScreenToWorldPoint (Input.mousePosition);
isMoving = true;
}
if (isMoving) {
moveToPosition ();
}
}
void moveToPosition() {
transform.position = Vector3.MoveTowards (transform.position, new Vector3(targetPosition.x, targetPosition.y, 0f), speed * Time.deltaTime);
if (transform.position.x == targetPosition.x && transform.position.y == targetPosition.y) {
isMoving = false;
}
}
}
经过一番研究和尝试,我并没有找到想要实现的方法。感谢您的帮助。
transform.forward
前进。旋转飞船以便接近目的地。(如果你在移动时进行转向,则旋转的确切算法将是解决问题最困难的部分。) - Serlite