如何重置转换.旋转位置

本文关键字:位置 旋转 转换 何重置 | 更新日期: 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 语句中的那个。