旋转后,物体飞向无限远

时间:2014-10-12 02:22:10

标签: c# unity3d rotation transform infinity

我正在尝试在Unity中创建一个2D“Ghost对象”,它移动到玩家的鼠标位置(同时捕捉到网格)并在鼠标滚轮旋转时旋转。当玩家点击时,它将在其位置创建“真实对象”。 问题在于,当我开始旋转物体时,它变得莫名其妙地不稳定,最终在到达无限远之前飞离屏幕。不旋转时,它表现得很完美。

由于移动代码无论方向如何都应该有效,我不知道为什么它会飞离屏幕。

相关代码(C#):

Vector3 rawPos = cam.ScreenToWorldPoint (Input.mousePosition);
transform.Rotate(0,0,50*Input.GetAxis ("Mouse ScrollWheel"));
Vector3 targetPos = new Vector3 (Mathf.RoundToInt(rawPos.x),Mathf.RoundToInt(rawPos.y),10);
transform.Translate (targetPos-transform.position);

这可能是显而易见的,但我对此仍然有点新鲜。 提前感谢您的帮助。

编辑:我想我应该注意到这是在FixedUpdate中发生的。

1 个答案:

答案 0 :(得分:0)

通过更改

解决了问题
transform.Translate 

transform.position = targetPos

同样适用。