Пример #1
0
        protected virtual void BuildUp(GameObject editor)
        {
            editor.AddComponent <GLRenderer>();

            GameObject ui = new GameObject("UI");

            ui.transform.SetParent(editor.transform);

            Canvas canvas = ui.AddComponent <Canvas>();

            if (IsVR)
            {
                canvas.renderMode  = RenderMode.WorldSpace;
                canvas.worldCamera = Camera.main;
            }
            else
            {
                canvas.renderMode    = RenderMode.ScreenSpaceCamera;
                canvas.worldCamera   = Camera.main;
                canvas.planeDistance = Camera.main.nearClipPlane + 0.01f;
            }

            canvas.sortingOrder = short.MinValue;

            GameObject scene = new GameObject("SceneWindow");

            scene.transform.SetParent(ui.transform, false);

            RuntimeWindow sceneView = scene.AddComponent <RuntimeWindow>();

            sceneView.IsPointerOver = true;
            sceneView.WindowType    = RuntimeWindowType.Scene;
            if (Camera.main == null)
            {
                GameObject camera = new GameObject();
                camera.name      = "RTE SceneView Camera";
                sceneView.Camera = camera.AddComponent <Camera>();
            }
            else
            {
                sceneView.Camera = Camera.main;
            }

            EventSystem eventSystem = FindObjectOfType <EventSystem>();

            if (eventSystem == null)
            {
                eventSystem = editor.AddComponent <EventSystem>();
                if (IsVR)
                {
                    //
                }
                else
                {
                    editor.AddComponent <StandaloneInputModule>();
                }
            }

            RectTransform rectTransform = sceneView.GetComponent <RectTransform>();

            if (rectTransform != null)
            {
                RectTransform parentTransform = rectTransform.parent as RectTransform;
                if (parentTransform != null)
                {
                    rectTransform.anchorMin = new Vector2(0, 0);
                    rectTransform.anchorMax = new Vector2(1, 1);
                    rectTransform.pivot     = new Vector2(0.5f, 0.5f);
                    rectTransform.offsetMax = new Vector2(0, 0);
                    rectTransform.offsetMin = new Vector2(0, 0);
                }
            }

            if (IsVR)
            {
                gameObject.AddComponent <VRTracker>();
            }
            else
            {
                m_raycaster = ui.AddComponent <GraphicRaycaster>();
            }
            m_eventSystem = eventSystem;
        }
Пример #2
0
        protected virtual void BuildUp(GameObject editor)
        {
            editor.AddComponent <GLRenderer>();

            GameObject ui = new GameObject("UI");

            ui.transform.SetParent(editor.transform);

            Canvas canvas = ui.AddComponent <Canvas>();

            if (m_instance.IsVR)
            {
                canvas.renderMode  = RenderMode.WorldSpace;
                canvas.worldCamera = Camera.main;
            }
            else
            {
                canvas.renderMode  = RenderMode.ScreenSpaceCamera;
                canvas.worldCamera = Camera.main;
            }

            canvas.sortingOrder = short.MinValue;

            GameObject scene = new GameObject("SceneWindow");

            scene.transform.SetParent(ui.transform, false);

            RuntimeWindow sceneView = scene.AddComponent <RuntimeWindow>();

            sceneView.WindowType = RuntimeWindowType.SceneView;
            sceneView.Camera     = Camera.main;

            EventSystem eventSystem = FindObjectOfType <EventSystem>();

            if (eventSystem == null)
            {
                eventSystem = editor.AddComponent <EventSystem>();
                if (m_instance.IsVR)
                {
                    RTEVRInputModule inputModule = editor.AddComponent <RTEVRInputModule>();
                    inputModule.rayTransform = sceneView.Camera.transform;
                    inputModule.Editor       = this;
                }
                else
                {
                    editor.AddComponent <StandaloneInputModule>();
                }
            }

            RectTransform rectTransform = sceneView.GetComponent <RectTransform>();

            if (rectTransform != null)
            {
                RectTransform parentTransform = rectTransform.parent as RectTransform;
                if (parentTransform != null)
                {
                    rectTransform.anchorMin = new Vector2(0, 0);
                    rectTransform.anchorMax = new Vector2(1, 1);
                    rectTransform.pivot     = new Vector2(0.5f, 0.5f);
                    rectTransform.offsetMax = new Vector2(0, 0);
                    rectTransform.offsetMin = new Vector2(0, 0);
                }
            }

            if (m_instance.IsVR)
            {
                RTEVRGraphicsRaycaster raycaster = ui.AddComponent <RTEVRGraphicsRaycaster>();
                raycaster.SceneWindow  = sceneView;
                m_instance.m_raycaster = raycaster;
            }
            else
            {
                m_instance.m_raycaster = ui.AddComponent <GraphicRaycaster>();
            }
            m_instance.m_eventSystem = eventSystem;
        }