我希望能够通过单击鼠标左键将对象旋转到(15,0,0),然后在大约一秒后将其旋转回(0,0,0)。 / p>
问题是,它不会旋转回来,我似乎无法得到它。
using UnityEngine;
using System.Collections;
public class HitScript : MonoBehaviour
{
private bool ifswung;
// Use this for initialization
void Start()
{
ifswung = false;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if (ifswung == false)
{
transform.Rotate(15, 0, 0);
ifswung = true;
}
else if(ifswung == true)
{
transform.Rotate(0, 0, 0);
ifswung = false;
}
}
}
}
答案 0 :(得分:1)
public class HitScript : MonoBehaviour
{
private Vector3[] rotations = { new Vextor3(15f,0f,0f),Vector3.zero } ;
private in index = 0;
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
if(++index >= rotations.Length)index = 0;
transform.rotation = Quaternion.Euler(rotations[index]);
}
}
//transform.rotation = Quaternion.Lerp(transform.rotation,
// Quaternion.Euler(rotations[index]), Time.deltaTime);
}
所以你有两个旋转存储在数组中。你也可以使用一个布尔值,使用数组使它超过两行。
所以每次按下按钮,索引都会增加,如果索引高于数组的长度,那么它会回到0。
最后一行是您想要从一个旋转缓慢移动到另一个旋转。你必须在if语句中注释掉那个。