C# 如何在C中根据鼠标光标位置围绕另一个对象旋转游戏对象#

C# 如何在C中根据鼠标光标位置围绕另一个对象旋转游戏对象#,c#,rotation,unity3d,C#,Rotation,Unity3d,我试图根据鼠标光标的移动来旋转一个对象(就像泡泡枪游戏中的泡泡枪)。但我要用我的剧本来做 我的剧本是: 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.

我试图根据鼠标光标的移动来旋转一个对象(就像泡泡枪游戏中的泡泡枪)。但我要用我的剧本来做

我的剧本是:

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);
它只旋转它不会移动的相同位置。
请任何人帮我解决这个问题。或者让我看看任何好的教程……

如果我正确理解了您的问题,那么对象的变换是围绕其局部原点旋转的,这就是为什么您看到的是正确的旋转,而不是平移

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

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

希望这有帮助,否则请提供更多关于您的问题的细节