Пример #1
0
        public static void DoAnnotationGUI(int id, Rect rect)
        {
            var obj = EditorUtility.InstanceIDToObject(id) as GameObject;

            if (!obj)
            {
                return;
            }

            var tc = obj.GetComponent <TestComponent>();

            if (!tc)
            {
                return;
            }

            if (!EditorApplication.isPlayingOrWillChangePlaymode &&
                rect.Contains(Event.current.mousePosition) &&
                Event.current.type == EventType.MouseDown &&
                Event.current.button == 1)
            {
                IntegrationTestRendererBase.DrawContextMenu(tc);
                Event.current.Use();
            }

            EditorGUIUtility.SetIconSize(new Vector2(15, 15));
            var result = IntegrationTestsRunnerWindow.GetResultForTest(tc);

            if (result != null)
            {
                var icon = result.Executed ? IntegrationTestRendererBase.GetIconForResult(result.resultType) : Icons.UnknownImg;
                EditorGUI.LabelField(new Rect(rect.xMax - 18, rect.yMin - 2, rect.width, rect.height), new GUIContent(icon));
            }
            EditorGUIUtility.SetIconSize(Vector2.zero);
        }
        public static void OnHierarchyWindowItemDraw(int id, Rect rect)
        {
            var o = EditorUtility.InstanceIDToObject(id);

            if (o is GameObject)
            {
                var go = o as GameObject;
                var tc = go.GetComponent <TestComponent> ();

                if (tc != null)
                {
                    if (!EditorApplication.isPlayingOrWillChangePlaymode &&
                        rect.Contains(Event.current.mousePosition) &&
                        Event.current.type == EventType.MouseDown &&
                        Event.current.button == 1)
                    {
                        IntegrationTestRendererBase.DrawContextMenu(tc);
                    }

                    EditorGUIUtility.SetIconSize(new Vector2(15, 15));
                    var result = Instance.resultList.Find(r => r.GameObject == go);

                    if (result != null)
                    {
                        var icon = result.Executed ? GuiHelper.GetIconForResult(result.resultType) : Icons.unknownImg;
                        EditorGUI.LabelField(new Rect(rect.xMax - 18, rect.yMin - 2, rect.width, rect.height), new GUIContent(icon));
                    }

                    EditorGUIUtility.SetIconSize(Vector2.zero);
                }

                if (Event.current.type == EventType.MouseDown &&
                    Event.current.button == 0 &&
                    rect.Contains(Event.current.mousePosition))
                {
                    var temp = go.transform;

                    while (temp != null)
                    {
                        var c = temp.GetComponent <TestComponent> ();

                        if (c != null)
                        {
                            break;
                        }

                        temp = temp.parent;
                    }

                    if (temp != null)
                    {
                        SelectInHierarchy(temp.gameObject);
                    }
                }
            }
        }