Beispiel #1
0
        //public EventsCheckSetup[] setups = new EventsCheckSetup[0];
        // Функция отрисовки окна
        public void OnGUI()
        {
            if (Sender.Log == null)
            {
                Sender.StartLog();
            }
            GUILayout.BeginVertical();
            SerializedObject so = new SerializedObject(this);

            EventToPause = EditorGUILayout.Toggle(new GUIContent("Event Pause"), EventToPause);
            EventName    = EditorGUILayout.TextField("Event Name", EventName);
            Stage        = (EventsCheckStage)Enum.ToObject(typeof(EventsCheckStage), EditorGUILayout.EnumPopup("Execute", Stage));
            Caller       = EditorGUILayout.ObjectField(new GUIContent("Caller"), Caller, typeof(UnityEngine.Object));
            Receiver     = EditorGUILayout.ObjectField(new GUIContent("Receiver"), Receiver, typeof(UnityEngine.Object));

            if (GUILayout.Button("Clear"))
            {
                Sender.StopLog();
                Sender.StartLog();
            }

            //GUILayout.Label(new GUIContent("Список событий", "Список всех обработанных событий."));
            scrollPosition = GUILayout.BeginScrollView(scrollPosition);
            listEvent.DoLayoutList();
            if (lastEvent != null && listReciever != null)
            {
                listReciever.DoLayoutList();
            }
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
            so.ApplyModifiedProperties();
            Repaint();
        }
Beispiel #2
0
 void formSetup(EventsCheckSetup setup)
 {
     EventName = setup.EventName;
     Stage     = setup.Stage;
     Caller    = setup.Caller.Target;
     Receiver  = setup.Receiver.Target;
 }
Beispiel #3
0
 public void Update(EventCheckArgs args)
 {
     if (args.Receiver != Object)
     {
         Debug.LogError("Попытка обновить запись чужого получателя события.");
         return;
     }
     Stage = Stage | args.Stage;
     time2 = Time.time;
 }
Beispiel #4
0
        private static void OnEvent(EventHandler <EventCheckArgs> handler, EventsCheckStage stage, SimpleEvent simpleEvent, object receiver, int priority)
        {
            if (handler != null)
            {
                EventCheckArgs args = new EventCheckArgs();
                args.Stage    = stage;
                args.Event    = simpleEvent;
                args.Receiver = receiver;
                args.Priority = priority;

                handler(null, args);
            }
        }
Beispiel #5
0
        public bool Check(EventsCheckStage stage, SimpleEvent evnt, UnityEngine.Object receiver)
        {
            bool             checkOut = true;
            EventsCheckSetup setupLoc = ToSetup();

            setups    = new EventsCheckSetup[1];
            setups[0] = setupLoc;
            foreach (EventsCheckSetup setup in setups)
            {
                checkOut = setup.Check(stage, evnt, receiver) && checkOut;
            }

            return(checkOut);
        }
Beispiel #6
0
        // Функция отрисовки окна
        public void OnGUI()
        {
            GUILayout.BeginVertical();
            SerializedObject   so = new SerializedObject(this);
            SerializedProperty sp = so.FindProperty("z");

            EditorGUILayout.PropertyField(sp, new GUIContent("шаг"));
            EventToPause = EditorGUILayout.Toggle(new GUIContent("Event Pause"), EventToPause);
            EventName    = EditorGUILayout.TextField("Event Name", EventName);
            Stage        = (EventsCheckStage)Enum.ToObject(typeof(EventsCheckStage), EditorGUILayout.EnumPopup("Execute", Stage));
            Caller       = EditorGUILayout.ObjectField(new GUIContent("Caller"), Caller, typeof(UnityEngine.Object));
            Receiver     = EditorGUILayout.ObjectField(new GUIContent("Receiver"), Receiver, typeof(UnityEngine.Object));
            GUILayout.EndVertical();
            so.ApplyModifiedProperties();
        }
Beispiel #7
0
        public bool Check(EventsCheckStage stage, SimpleEvent evnt, UnityEngine.Object receiver)
        {
            checkOut = true;
            if (!string.IsNullOrEmpty(EventName))
            {
                checkOut = checkOut && (EventName == evnt.eventName);
            }
            checkOut = checkOut && stage == Stage;
            checkOut = checkOut && Caller.Check(evnt.target as UnityEngine.Object);
            checkOut = checkOut && Receiver.Check(receiver);

            foreach (ParmValuePairCheck parm in ParametersCheck)
            {
                checkOut = checkOut && parm.Check(evnt);
            }
            return(checkOut);
        }
Beispiel #8
0
    public ReceiverLogLine(EventCheckArgs args)
    {
        object target = args.Receiver;

        Type = target != null?target.GetType() : null;

        Object = target as UnityEngine.Object;
        Name   = Object != null ? Object.name : "";
        Component component = target as Component;

        Tag      = component != null ? component.tag : "";
        Mask     = component != null ? component.gameObject.layer : -1;
        Stage    = args.Stage;
        Priority = args.Priority;
        time     = Time.time;
        time2    = 0;
    }
Beispiel #9
0
//#endif
        //Проверка события что оно соотвествует условиям.
        public static void CheckEvent(EventsCheckStage stage, SimpleEvent evnt, UnityEngine.Object receiver)
        {
//#if UNITY_EDITOR
            explorer = EditorWindow.GetWindow <EventsExplorer>();
            if (explorer == null)
            {
                return;
            }
            bool result = explorer.EventToPause;

            if (result)
            {
                bool check = explorer.Check(stage, evnt, receiver);
                if (check)
                {
                    EditorApplication.isPaused = true;
                }
//#endif
            }
        }