Пример #1
0
 public EventEditorContext(EditorWindow window, OverviewEditorContext overviewContext, TriggerRoot triggerRoot, List <Trigger> triggers, GlobalSymbolTable symbolTable)
 {
     _triggerRoot     = triggerRoot;
     _overviewContext = overviewContext;
     _window          = window;
     _triggers        = new TriggerCollection(this, _overviewContext, _triggerRoot);
     _symbolTable     = symbolTable;
 }
Пример #2
0
 public TriggerCollection(EventEditorContext context, OverviewEditorContext overviewContext, TriggerRoot root)
 {
     _rootNode = new TriggerCollectionNode(context, overviewContext, root.gameObject);
     _triggers = new List<Trigger>();
     _context = context;
     _overviewContext = overviewContext;
     Initialize();
 }
Пример #3
0
 public TriggerCollectionNode(EventEditorContext context, OverviewEditorContext overviewContext, GameObject gameObject)
 {
     GameObject = gameObject;
     if (gameObject.GetComponent <Trigger>())
     {
         Trigger = gameObject.GetComponent <Trigger>();
     }
     _context         = context;
     _overviewContext = overviewContext;
 }
Пример #4
0
    public void Initialize()
    {
        if (_overviewContext == null)
        {
            _overviewContext = new OverviewEditorContext();
        }
        if (_eventEditorContext == null || _eventEditorContext.TriggerRoot == null)
        {
            TriggerRoot triggerRoot = GameObject.FindObjectOfType <TriggerRoot>();
            if (!triggerRoot)
            {
                triggerRoot = (new GameObject("Events")).AddComponent <TriggerRoot>();
            }
            GlobalSymbolTableAccessor accessor = triggerRoot.GetComponent <GlobalSymbolTableAccessor>();
            if (!accessor.GlobalSymbolTable)
            {
                accessor.GlobalSymbolTable = ScriptableObject.CreateInstance <GlobalSymbolTable>();
            }

            List <Trigger> triggers = new List <Trigger>();
            PopulateTriggerList(triggerRoot.transform, triggers);

            _eventEditorContext = new EventEditorContext(this, _overviewContext, triggerRoot, triggers, accessor.GlobalSymbolTable);

            _variableView.Context  = _eventEditorContext;
            _overviewTab.Context   = _eventEditorContext;
            _triggerEditor.Context = _eventEditorContext;
            return;
        }

        if (Selection.activeGameObject)
        {
            TriggerRoot[] roots        = Selection.activeGameObject.GetComponentsInParent <TriggerRoot>(true);
            TriggerRoot   selectedRoot = null;
            if (roots.Length != 0)
            {
                selectedRoot = roots[0];
            }

            if (selectedRoot)
            {
                if (selectedRoot != _eventEditorContext.TriggerRoot)
                {
                    List <Trigger> triggers = new List <Trigger>();
                    PopulateTriggerList(selectedRoot.transform, triggers);

                    GlobalSymbolTableAccessor accessor = selectedRoot.GetComponent <GlobalSymbolTableAccessor>();
                    accessor.hideFlags = HideFlags.None;
                    if (!accessor.GlobalSymbolTable)
                    {
                        accessor.GlobalSymbolTable = ScriptableObject.CreateInstance <GlobalSymbolTable>();
                    }
                    //SelectTrigger(null);
                    _eventEditorContext = new EventEditorContext(this, _overviewContext, selectedRoot, triggers, accessor.GlobalSymbolTable);

                    _variableView.Context  = _eventEditorContext;
                    _overviewTab.Context   = _eventEditorContext;
                    _triggerEditor.Context = _eventEditorContext;
                }
            }
        }

        if (_eventEditorContext.TriggerRoot)
        {
            _eventEditorContext.TriggerRoot.gameObject.hideFlags = HideFlags.None;
            _eventEditorContext.TriggerRoot.hideFlags            = HideFlags.None;
        }
    }