Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用统一的触摸输入钳制游戏对象的z旋转,而不会在y旋转上产生抖动_C#_Unity3d_Touch Event_Screen Rotation_Clamp - Fatal编程技术网

C# 如何使用统一的触摸输入钳制游戏对象的z旋转,而不会在y旋转上产生抖动

C# 如何使用统一的触摸输入钳制游戏对象的z旋转,而不会在y旋转上产生抖动,c#,unity3d,touch-event,screen-rotation,clamp,C#,Unity3d,Touch Event,Screen Rotation,Clamp,我可以使用下面的代码钳制游戏对象的z旋转,但它总是在我第一次触摸时改变y旋转。我只想旋转z轴 private float zRotation; public void RotateMove() { zRotation -= Input.GetTouch(0).deltaPosition.y * rotateSpeed * invert * Time.deltaTime; // this limits the rotatioon zRotation = Math

我可以使用下面的代码钳制游戏对象的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);
}

听起来好像
0
不是您想要的
Y

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

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

听起来好像
0
不是您想要的
Y

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

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

在touchphase.moved之前,是否有方法防止它在第一次触摸时在z轴上旋转。当我触摸屏幕时,它会立即移动,但我希望它在触摸阶段后移动。移动有一种方法可以防止它在触摸阶段之前第一次触摸时在z轴上旋转。移动。当我触摸屏幕时,它会立即移动,但我希望它在触摸阶段后移动