protected virtual void Awake() { if (Instance != null) { Debug.LogWarning("Another instance of RTE exists"); return; } if (m_useBuiltinUndo) { m_undo = new RuntimeUndo(this); } else { m_undo = new DisabledUndo(); } m_uiRaycaster = IOC.Resolve <IUIRaycaster>(); if (m_uiRaycaster == null) { m_uiRaycaster = GetComponentInChildren <IUIRaycaster>(); } IsVR = /*UnityEngine.XR.XRDevice.isPresent*/ false && m_enableVRIfAvailable; m_selection = new RuntimeSelection(this); m_dragDrop = new DragDrop(this); m_object = gameObject.GetComponent <RuntimeObjects>(); m_disabledInput = new DisabledInput(); m_activeInput = m_disabledInput; Instance = this; bool isOpened = m_isOpened; m_isOpened = !isOpened; IsOpened = isOpened; if (m_createHierarchyRoot) { GameObject hierarchyRoot = GameObject.FindGameObjectWithTag(ExposeToEditor.HierarchyRootTag); if (hierarchyRoot == null) { hierarchyRoot = new GameObject("HierarchyRoot"); } hierarchyRoot.transform.position = Vector3.zero; hierarchyRoot.tag = ExposeToEditor.HierarchyRootTag; } }
protected virtual void BuildUp(GameObject editor) { GameObject ui = new GameObject("UI"); ui.transform.SetParent(editor.transform); RenderPipelineInfo.ForceUseRenderTextures = false; Canvas canvas = ui.AddComponent <Canvas>(); if (IsVR) { canvas.renderMode = RenderMode.WorldSpace; canvas.worldCamera = Camera.main; } else { canvas.renderMode = RenderMode.ScreenSpaceOverlay; } canvas.sortingOrder = short.MinValue; editor.AddComponent <RTEGraphics>(); GameObject scene = new GameObject("SceneWindow"); scene.transform.SetParent(ui.transform, false); RuntimeCameraWindow sceneView = scene.AddComponent <RuntimeCameraWindow>(); 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; } if (RenderPipelineInfo.Type == RPType.Standard) { scene.AddComponent <RTEGraphicsLayer>(); } 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.pivot = new Vector2(0.0f, 0.0f); rectTransform.offsetMax = new Vector2(0, 0); rectTransform.offsetMin = new Vector2(0, 0); } } m_uiRaycaster = ui.AddComponent <RTEUIRaycaster>(); m_eventSystem = eventSystem; }