从脚本创建EventSystem

时间:2016-01-22 05:31:36

标签: events unity3d event-handling game-engine

我正在编写Unity编辑器脚本,需要确保(UI)事件系统存在,所以我想创建一个,如果它还没有。但是在尝试将其导入脚本时,无法找到#ifndef STK_H #define STK_H #include <iostream> #include <string> #include "stdio.h" using namespace std; class stk { struct node { int data; node * next; }; node *head; public: stk() { head = NULL; } int push(int val); int pop(); int display(); int reverse(node * temp); void insertAtBottom(int tVal, node * temp); bool isEmpty(); int startProg(); private: }; #endif 类和 int stk::startProg() { while (true) { string line = "\0"; getline(cin, line); if (0 == line.compare(0,4, "push")) { int val = 0; val = stoi(line.substr(5)); push(val); } else if(0 == line.compare (0,3, "pop")) { pop(); } else if (0 == line.compare(0,7, "isempty")) { printf ("%s\n", isEmpty() ? "true" : "false"); } else if (0 == line.compare(0,7, "reverse")) { node * top = NULL; reverse(top); } else if (0 == line.compare(0,7, "display")) { display(); } else if (0 == line.compare(0,4, "quit")) { exit(0); } 类。这有什么关系?我也找不到关于此事的任何其他信息。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

是的,您可以从脚本创建一个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));
        }
    }
}