Unity - 如何根据触摸旋转对象?

Posted

技术标签:

【中文标题】Unity - 如何根据触摸旋转对象?【英文标题】:Unity - How to rotate an object based on touch? 【发布时间】:2014-03-16 00:52:44 【问题描述】:

我正在为 ios 设备创建游戏。我希望我的玩家或游戏对象根据触摸旋转。我在 touchPhase.Moved 中使用以下代码

if (Input.touchCount > 0 && Input.GetTouch (0).phase == TouchPhase.Moved) 
    
        coinTouched = true;

        if (coinTouched) 
        
            Vector2 currentTouchPosition = Input.GetTouch (0).position;
            endPos = new Vector3 (currentTouchPosition.x, 0, currentTouchPosition.y);
            endTime = Time.time;


            gameObject.transform.rotation = Quaternion.Euler(0f,Input.GetTouch(0).deltaPosition.x * 1.0f,0f);

        

    

但它的行为很尴尬。它旋转了几乎 180 度,然后向相反的方向移动,再经过 180 度后,它向相反的方向旋转,依此类推。请帮帮我。

谢谢。

【问题讨论】:

【参考方案1】:

您的代码有点奇怪。这意味着您在 Vecotr 的错误位置使用了 x 和 y 值。我将假设您是故意这样做的,以使立方体正确转动。我会使用 Rotate 而不是更改旋转值。

这是一个比我能做的更好的事情: http://answers.unity3d.com/questions/255118/rotating-an-object-with-touch.html

【讨论】:

以上是关于Unity - 如何根据触摸旋转对象?的主要内容,如果未能解决你的问题,请参考以下文章

Unity3d如何根据方向进行旋转,萌新求问!

如何使游戏对象在旋转平面中围绕 Unity 中的另一个游戏对象旋转

根据触摸事件旋转元素

如何复制父对象的旋转保持自旋转,因为它在unity3d中

Unity使用触摸旋转相机 - 移动

如何使相机具有与对象相同的旋转但具有偏移(Unity)