我正试图按鼠标点击的方向移动(射击)球体。但当我点击时,球体向不可预测的方向移动。
我的代码是增加力来移动球体:
if (Input.GetMouseButtonDown(0)){
RaycastHit hit;
/**
* We r using raycasting to detect mouse click on plane
* */
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)){
newPosition = hit.point;
this.GetComponent<Rigidbody>().AddForce( (newPosition).normalized * 25, ForceMode.Impulse );
}
}发布于 2016-11-17 20:47:02
您为Rigidbody.AddForce()提供了一个不正确的论点。你为第一个论点提供的向量不应该是位置,你想要力指向的位置,它应该是力的方向,乘以震级。
在这种情况下,可以通过从目标位置减去物体的当前位置来计算力的方向:
Vector3 forceDir = newPosition - transform.position;
this.GetComponent<Rigidbody>().AddForce( forceDir.normalized * 25, ForceMode.Impulse );希望这能有所帮助!如果你有任何问题,请告诉我。
https://stackoverflow.com/questions/40663886
复制相似问题