gpt4 book ai didi

c# - 如何减慢旋转速度?

转载 作者:搜寻专家 更新时间:2023-11-01 09:25:30 25 4
gpt4 key购买 nike

所以我写了一些代码让一个对象在我向左或向右滑动时旋转

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotater : MonoBehaviour {

public Transform player;

void Update()
{
if (Input.touchCount == 1)
{
// GET TOUCH 0
Touch touch0 = Input.GetTouch(0);

// APPLY ROTATION
if (touch0.phase == TouchPhase.Moved)
{
player.transform.Rotate(0f, 0f, touch0.deltaPosition.x);
}

}
}
}

问题是当我快速滑动时旋转将无法控制。所以我希望输入不那么敏感。

我的目标是让旋转像rolly vortex一样

我的设置:

  • 我做了一个空的物体,放在中间

  • 使空对象成为我的播放器的父对象

  • 最后,我将代码放入空对象

这个设置让玩家在某种轨道上旋转,就像我告诉过你的那样类似于滚动的漩涡。

最佳答案

首先,您希望能够缩放灵敏度。这意味着对于触摸位置的每个变化单位,您将获得旋转变化单位的一些倍数。为此,创建一个可配置(公共(public))成员变量 public float touchSensitivityScale,并将旋转乘以该值。示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotater : MonoBehaviour {

public Transform player;
public float touchSensitivityScale;

void Update()
{
if (Input.touchCount == 1)
{
// GET TOUCH 0
Touch touch0 = Input.GetTouch(0);

// APPLY ROTATION
if (touch0.phase == TouchPhase.Moved)
{
player.transform.Rotate(0f, 0f, touch0.deltaPosition.x * touchSensitivityScale);
}

}
}
}

现在您可以在检查器中编辑触摸灵敏度。当 touchSensitivityScale 设置为 1 时,行为将与当前相同。如果将数字设置为 0.5,则旋转灵敏度将减半。

如果这不能完全解决问题并且您还需要一些平滑或加速,那么可能需要对问题进行编辑。

希望对您有所帮助!

关于c# - 如何减慢旋转速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50994700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com