在团结中,我在箭头的开头有一个带有枢轴的箭头精灵。
现在我需要在2d旋转该箭头,使其始终指向鼠标。
需要使用lerp
或slerp
来完成,所以当我将鼠标移动太快时,它不会跳到那里但会慢慢滑动到那个位置。
答案 0 :(得分:0)
这一切都取决于您的箭头设置方式,您可以使用rotateTowards吗?
如果是这样,您可以将ScreenToWorldPoint与rotateTowards一起使用
(ps,因为我在工作时没有测试功能:P)
void Update() {
transform.rotateTowards(camera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, camera.nearClipPlane));
}
对于lerp函数,您应该是Check here for speed variable stuff
快乐编码。
答案 1 :(得分:0)
我刚回答了一个非常相似的问题here。为简单起见,以下代码是example from the Unity forum,您可以使用它来围绕z轴旋转对象。
Vector3 pos = Camera.main.WorldToScreenPoint(transform.position);
Vector3 dir = Input.mousePosition - pos;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
Here is the Unity3D documentation for slerp和here is the documentation for lerp。应该直接修改代码,以便从这些示例中执行您想要的操作。