如何在不产生 y 旋转抖动的情况下统一使用触摸输入来钳制游戏对象的 z 旋转

Posted

技术标签:

【中文标题】如何在不产生 y 旋转抖动的情况下统一使用触摸输入来钳制游戏对象的 z 旋转【英文标题】:How to clamp z rotation of a gameobject using touch input in unity without creating a jitter on y rotation 【发布时间】:2020-11-16 10:24:57 【问题描述】:

我可以使用下面的代码来限制我的游戏对象的 z 旋转,但它总是会在我第一次触摸时改变 y 旋转。我只想旋转z轴。

private float zRotation;

public void RotateMove()

    zRotation -= Input.GetTouch(0).deltaPosition.y * rotateSpeed * invert * Time.deltaTime;
    
    // this limits the rotatioon
    zRotation = Mathf.Clamp(zRotation, -80, 80);
    //this rotates the game obj
    lamp2Rotate.transform.eulerAngles = new Vector3(0.0f, 0.0f, zRotation);

【问题讨论】:

【参考方案1】:

听起来0 不是你想要的Y

您可以改为保留其他两个旋转:

var eulerAngles = lamp2Rotate.transform.eulerAngles;
eulerAngles.z = zRotation;
lamp2Rotate.transform.eulerAngles = eulerAngles;

【讨论】:

有没有办法防止它在 touchphase.moved 之前的第一次触摸时在 z 轴上旋转。它会立即移动我触摸屏幕,但我希望它在 touchphase.moved 之后这样做

以上是关于如何在不产生 y 旋转抖动的情况下统一使用触摸输入来钳制游戏对象的 z 旋转的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用paintEvent的情况下旋转PyQt5 QPushButton?

在不传递事件输入的情况下点击获取 x,y 坐标

如何在不丢失触摸事件的情况下冻结 UIScrollView 滚动

如何在不阻止 textView 触摸的情况下向所有 UITextView 添加一个 UIGestureRecognizer

如何在不触摸的情况下更改按钮的图像

如何在不破坏布局“流程”的情况下使用 css 旋转元素?