0

我正在尝试根据鼠标光标移动来旋转对象(例如泡泡射击游戏中的泡泡枪)。但我已申请用我的脚本来做到这一点。

我的脚本是:

mouse_pos = Input.mousePosition;
Debug.Log(mouse_pos);
object_pos = Camera.main.WorldToScreenPoint(target.position);
mouse_pos.x = mouse_pos.x - object_pos.x;
mouse_pos.y = mouse_pos.y - object_pos.y;
angle = Mathf.Atan2(mouse_pos.y, mouse_pos.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0,-angle);

它只旋转它不会移动的相同位置。请任何人帮我解决这个问题。或者指点我任何好的教程....

4

1 回答 1

0

如果我正确理解您的问题,那么对象的变换将围绕其本地原点旋转,这就是您看到正确旋转但没有平移的原因。

Unity 按以下顺序应用变换:缩放、平移、旋转。

解决此问题的最简单方法是将对象的变换作为另一个父变换的父级,然后旋转父变换(已对对象的变换应用了平移)。请注意,您必须修改对象变换的任何缩放或平移,因为它现在将继承父变换的旋转。

希望对您有所帮助,否则请提供有关您的问题的更多详细信息。

于 2013-09-14T00:06:11.963 回答