如何重置转换.旋转位置
本文关键字:位置 旋转 转换 何重置 | 更新日期: 2023-09-27 18:33:52
我希望能够通过单击鼠标左键将对象旋转到(15,0,0),然后在大约一秒钟后将其旋转回(0,0,0)。
问题是,它不会向后旋转,我似乎无法让它旋转。
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;
}
}
}
}
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 语句中的那个。