所以我编写了一些代码,让对象在向左或向右滑动时旋转
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/