using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityStandardAssets.Characters.FirstPerson;
public class RotateObject : MonoBehaviour
{
public float turningRate = 1;
void Awake()
{
fpcscript = transform.GetComponent<FirstPersonController>();
fpcscript.enabled = false;
}
void Update()
{
transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(0, 0, 0), turningRate * Time.deltaTime);
}
}
使用Lerp让它旋转但旋转时有些口吃不太顺畅。
我也尝试过使用Quaternion.RotateTowards而不是Lerp,但它太慢而且不光滑。
答案 0 :(得分:1)
我不确定你是在问一个特定的方式;虽然在unity3d中我创建了一种基本方法,因此您只需附加一个脚本并 设置值 。 在检查员中,它应该要求在[X,Y,Z]上旋转值。它使用time.deltaTime和基本 Vector ,允许 平滑旋转 。这是我能想到的最好的,因为我不确定你是否要求特定的方式,因为如果你这样做,我可能会提供帮助。
using UnityEngine;
public class RotateObject : MonoBehaviour
{
public float RotationSpeedX;
public float RotationSpeedY;
public float RotationSpeedZ;
public void Update()
{
Vector3 RotationSPD = new Vector3(RotationSpeedX, RotationSpeedY, RotationSpeedZ);
Rotate_Object(RotationSPD);
}
private void Rotate_Object (Vector3 Rotation_Speed)
{
transform.Rotate(Rotation_Speed * Time.deltaTime);
}
}
答案 1 :(得分:1)
transform.Rotate(Speed * Time.deltaTime); 使用这个api:Time.deltaTime会让它变得流畅。