[英]Move Object toward mouse click in 2D top down Unity3d
我在使对象移向鼠标单击位置时遇到问题。 我的视图是2D俯视图(y轴是垂直的),但是当我获得鼠标单击的位置时。 我向对象添加力是开始围绕x轴的位置旋转。
yield return new WaitForSeconds (1);
while (!firstTime) {
MousePosition = MainCamera.WorldToScreenPoint (transform.position);
CheckSpeed(Vector3.Distance(this.transform.position, MousePosition));
Quaternion rotation = transform.rotation;
Vector3 dir = rotation * Vector3.forward;
this.rigidbody.AddForce (dir*100);
transform.position = Vector3.Lerp (transform.position, dir ,Time.deltaTime* forwardSpeed);
yield return new WaitForSeconds (1f);
}
yield break;
}
您最好使用MoveTowards:
transform.position = Vector3.MoveTowards(transform.position, destination, CONSTANT);
您可以在Update()中执行此操作,它将移动transform.position直到到达destination 。
我也将避免您的收益。 将其移至Update()函数,并使用布尔值确保对象到达后不移动。 例如,您执行以下操作:
Mathf.Abs(Vector3.Distance(position, destination)) <= EPSILON
另外,在2D模式下,获取鼠标位置的最佳方法是:
Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero)
您想将鼠标映射到对象的空间,而不是相反。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.