【发布时间】:2018-06-25 16:10:36
【问题描述】:
所以我试图在按键时旋转一个对象(如果我按“a”向左旋转 90 度,如果我按“d”向右旋转 90 度)。 我无法让它工作,我尝试了一些东西,但我最终没有解决问题。正如您将在下一个示例中看到的那样,我只知道如何旋转到 90 度,而不是或多或少,我实际上想将对象旋转 90 度,从当前打开的度数开始。例如: 从90度到180度 从23度到113度等等…… 这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ModuleBehaviour : MonoBehaviour {
public bool rotating = false;
private void Update()
{
if (rotating)
{
RotatePlatform();
}
}
private void RotatePlatform()
{
Vector3 target = new Vector3(0,0,90);
if (transform.eulerAngles.z > 90)
{
transform.rotation = Quaternion.Euler(target);
}
transform.Rotate(target * Time.deltaTime);
}
}
(不要担心rotating 变量,我正在另一个脚本中更改它,只要我按下“d”键就可以了。我只需要知道如何朝正确的方向旋转,之后我会弄清楚如何申请左轮换)
谢谢;
【问题讨论】:
-
协程 + Lerp。从副本中的 INCREMENTAL ANGULAR ROTATION: 中阅读,您将看到如何将对象从其已经处于的任何角度旋转 90 度。