从脚本创建 EventSystem

Create EventSystem from script

我正在编写一个 Unity 编辑器脚本,需要确保 (UI) 事件系统存在,所以我想创建一个(如果不存在的话)。但是在尝试将其导入脚本时找不到 EventSystem class 和 StandaloneInputModule class 。这是怎么回事?我也找不到关于此事的任何其他信息。

添加 UI 项时,会自动添加 EventSystem 对象。只需将它拖到您的项目中,使其成为预制件,这样您就可以使用它来实例化,就像任何游戏对象一样。

public GameObject eventPrefab;
void Start(){
    if(GameObject.Find("EventSystem") == null){
         Instantiate(eventPrefab);
    }
}

是的,您可以从脚本创建 EventSystem。与任何其他组件一样,创建一个 GameObject 并向其中添加所需的组件。

using UnityEngine;
using UnityEngine.EventSystems;

public class CreateEventSystem : MonoBehaviour
{
    void Start()
    {
        if (FindObjectOfType<EventSystem>() == null)
        {
            var eventSystem = new GameObject("EventSystem", typeof(EventSystem), typeof(StandaloneInputModule));
        }
    }
}