若要重置所有东西,可以在按钮的点击事件中使用以下代码:

using UnityEngine;

public class ResetButton : MonoBehaviour
{
    public GameObject[] objectsToReset; // 需要重置的所有游戏对象

    private void Start()
    {
        // 在开始时保存初始位置和旋转信息
        foreach (GameObject obj in objectsToReset)
        {
            obj.GetComponent<ObjectReset>().SaveInitialState();
        }
    }

    public void ResetAll()
    {
        // 重置所有游戏对象
        foreach (GameObject obj in objectsToReset)
        {
            obj.GetComponent<ObjectReset>().Reset();
        }
    }
}

然后,你需要为需要重置的每个游戏对象创建一个脚本,例如ObjectReset.cs,并将其附加到相应的对象上。脚本中的代码如下:

using UnityEngine;

public class ObjectReset : MonoBehaviour
{
    private Vector3 initialPosition;
    private Quaternion initialRotation;

    public void SaveInitialState()
    {
        // 保存初始位置和旋转信息
        initialPosition = transform.position;
        initialRotation = transform.rotation;
    }

    public void Reset()
    {
        // 重置位置和旋转
        transform.position = initialPosition;
        transform.rotation = initialRotation;
    }
}

这样,当按下按钮时,ResetAll() 方法将被调用,它将遍历 objectsToReset 数组中的所有游戏对象,并调用 ObjectReset 脚本中的 Reset() 方法来重置它们的位置和旋转

Unity当按下一个按钮后重置所有东西的代码

原文地址: https://www.cveoy.top/t/topic/hzjz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录