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; }
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; }