private void TryToAddRenderers(IRuntimeSelection selection)
 {
     if (selection.gameObjects != null)
     {
         Renderer[] renderers = selection.gameObjects.Where(go => go != null).Select(go => go.GetComponent <ExposeToEditor>()).Where(e => e != null && e.ShowSelectionGizmo && (e.gameObject.hideFlags & HideFlags.HideInHierarchy) == 0).SelectMany(e => e.GetComponentsInChildren <Renderer>().Where(r => (r.gameObject.hideFlags & HideFlags.HideInHierarchy) == 0)).ToArray();
         m_outlineEffect.AddRenderers(renderers);
     }
 }
 private void OnSelectionChanged(IRuntimeSelection selection, Object[] unselectedObjects)
 {
     if (unselectedObjects != null)
     {
         Renderer[] renderers = unselectedObjects.Select(go => go as GameObject).Where(go => go != null).SelectMany(go => go.GetComponentsInChildren <Renderer>(true)).ToArray();
         m_outlineEffect.RemoveRenderers(renderers);
     }
     TryToAddRenderers(selection);
 }
 protected void Awake()
 {
     m_wm                   = IOC.Resolve <IWindowManager>();
     m_editor               = IOC.Resolve <IRTE>();
     m_selection            = new RuntimeSelection(m_editor);
     m_selection.EnableUndo = false;
     IOC.RegisterFallback <ICustomSelectionComponent>(this);
     Enabled = false;
 }
Exemple #4
0
        protected override void OnDestroy()
        {
            base.OnDestroy();

            Window.IOCContainer.UnregisterFallback <IScenePivot>(this);
            Window.IOCContainer.UnregisterFallback <IRuntimeSelectionComponent>(this);

            if (m_boxSelection != null)
            {
                m_boxSelection.Filtering -= OnBoxSelectionFiltering;
                m_boxSelection.Selection -= OnBoxSelection;
            }

            if (Editor != null)
            {
                Editor.Tools.ToolChanged          -= OnRuntimeToolChanged;
                Editor.Selection.SelectionChanged -= OnRuntimeEditorSelectionChanged;
            }

            if (m_positionHandle != null)
            {
                m_positionHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_positionHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_rotationHandle != null)
            {
                m_rotationHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_rotationHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_scaleHandle != null)
            {
                m_scaleHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_scaleHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_rectTool != null)
            {
                m_rectTool.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_rectTool.Drop.RemoveListener(OnDrop);
            }

            if (m_customHandle != null)
            {
                m_customHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_customHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_selectionOverride != null)
            {
                m_selectionOverride.SelectionChanged -= OnRuntimeSelectionChanged;
                m_selectionOverride = null;
            }
        }
        private void TryToAddRenderers(IRuntimeSelection selection)
        {
            if (selection.gameObjects != null)
            {
                IList <Renderer> renderers = GetRenderers(selection.gameObjects);
                m_outlineEffect.AddRenderers(renderers.ToArray());

                IList <ICustomOutlinePrepass> customRenderers = GetCustomRenderers(selection.gameObjects);
                m_outlineEffect.AddRenderers(customRenderers.ToArray());
            }
        }
 private void TryToAddRenderers(IRuntimeSelection selection)
 {
     if (selection.gameObjects != null)
     {
         ICustomOutlinePrepass[] renderers = selection.gameObjects.Where(go => go != null).Select(go => go.GetComponent <ExposeToEditor>()).Where(e => e != null && e.ShowSelectionGizmo && !e.gameObject.IsPrefab() && (e.gameObject.hideFlags & HideFlags.HideInHierarchy) == 0).SelectMany(e => e.GetComponentsInChildren <ICustomOutlinePrepass>()).Where(e => e.GetRenderer().gameObject.activeInHierarchy).ToArray();
         for (int i = 0; i < renderers.Length; ++i)
         {
             ICustomOutlinePrepass renderer = renderers[i];
             m_rendererItems.Add(renderer);
         }
     }
 }
 private void OnSelectionChanged(IRuntimeSelection selection, Object[] unselectedObjects)
 {
     if (unselectedObjects != null)
     {
         Renderer[] renderers = unselectedObjects.Select(go => go as GameObject).Where(go => go != null).SelectMany(go => go.GetComponentsInChildren <Renderer>(true)).ToArray();
         for (int i = 0; i < renderers.Length; ++i)
         {
             Renderer renderer = renderers[i];
             m_cache.Remove(renderer);
         }
     }
     TryToAddRenderers(selection);
 }
 private void TryToAddRenderers(IRuntimeSelection selection)
 {
     if (selection.gameObjects != null)
     {
         Renderer[] renderers = selection.gameObjects.Where(go => go != null).Select(go => go.GetComponent <ExposeToEditor>()).Where(e => e != null && e.ShowSelectionGizmo && !e.gameObject.IsPrefab() && (e.gameObject.hideFlags & HideFlags.HideInHierarchy) == 0).SelectMany(e => e.GetComponentsInChildren <Renderer>().Where(r => (r.gameObject.hideFlags & HideFlags.HideInHierarchy) == 0)).ToArray();
         for (int i = 0; i < renderers.Length; ++i)
         {
             Renderer renderer = renderers[i];
             if ((renderer.hideFlags & HideFlags.HideInHierarchy) == 0)
             {
                 m_cache.Add(renderer);
             }
         }
     }
 }
Exemple #9
0
        private void HandleRuntimeSelectionChange(IRuntimeSelection selection, UnityObject[] unselected)
        {
            if (!IsSelectionVisible)
            {
                return;
            }

            if (unselected != null)
            {
                for (int i = 0; i < unselected.Length; ++i)
                {
                    GameObject unselectedObj = unselected[i] as GameObject;
                    if (unselectedObj != null)
                    {
                        ExposeToEditor exposeToEditor = unselectedObj.GetComponent <ExposeToEditor>();
                        if (exposeToEditor)
                        {
                            if (exposeToEditor.Unselected != null)
                            {
                                exposeToEditor.Unselected.Invoke(exposeToEditor);
                            }
                        }
                    }
                }
            }

            GameObject[] selected = selection.gameObjects;
            if (selected != null)
            {
                for (int i = 0; i < selected.Length; ++i)
                {
                    GameObject     selectedObj    = selected[i];
                    ExposeToEditor exposeToEditor = selectedObj.GetComponent <ExposeToEditor>();
                    if (exposeToEditor && !selectedObj.IsPrefab() && !selectedObj.isStatic)
                    {
                        if (exposeToEditor.Selected != null)
                        {
                            exposeToEditor.Selected.Invoke(exposeToEditor);
                        }
                    }
                }
            }
        }
        private void Awake()
        {
            IOC.RegisterFallback <IManualUVEditor>(this);
            m_editor = IOC.Resolve <IRuntimeEditor>();
            m_tool   = IOC.Resolve <IProBuilderTool>();
            m_tool.SelectionChanged += OnSelectionChanged;
            m_tool.ModeChanged      += OnModeChanged;

            m_pivotPointSelection = new RuntimeSelection(IOC.Resolve <IRTE>());

            m_pivotPoint = new GameObject("ManualUVEditorPivotPoint").transform;
            m_pivotPoint.SetParent(transform, false);
            LockAxes la = m_pivotPoint.gameObject.AddComponent <LockAxes>();

            la.PositionZ          = true;
            la.RotationX          = la.RotationY = la.RotationFree = la.RotationScreen = true;
            la.ScaleZ             = true;
            la.PivotRotationValue = RuntimePivotRotation.Global;
            la.PivotRotation      = true;
        }
        protected virtual void SelectGO()
        {
            RuntimeTools      tools     = m_component.Editor.Tools;
            IRuntimeSelection selection = m_component.Selection;

            if (tools.ActiveTool != null && tools.ActiveTool != m_component.BoxSelection)
            {
                return;
            }

            if (tools.IsViewing)
            {
                return;
            }

            if (!selection.Enabled)
            {
                return;
            }

            OnSelectGO();
        }
Exemple #12
0
 private void OnSelectionChanged(IRuntimeSelection selection, Object[] unselectedObjects)
 {
     TryToRemoveRenderers(unselectedObjects);
     TryToAddRenderers(selection);
 }
Exemple #13
0
        protected override void OnDestroyOverride()
        {
            base.OnDestroyOverride();

            Window.IOCContainer.UnregisterFallback <IScenePivot>(this);
            Window.IOCContainer.UnregisterFallback <IRuntimeSelectionComponent>(this);

            if (m_boxSelection != null)
            {
                m_boxSelection.Filtering -= OnBoxSelectionFiltering;
                m_boxSelection.Selection -= OnBoxSelection;
            }

            if (Editor != null)
            {
                Editor.Tools.ToolChanged          -= OnRuntimeToolChanged;
                Editor.Selection.SelectionChanged -= OnRuntimeEditorSelectionChanged;
            }

            /*
             * GameObject[] selectedObjects = Editor.Selection.gameObjects;
             * if (selectedObjects != null)
             * {
             *  for (int i = 0; i < selectedObjects.Length; ++i)
             *  {
             *      GameObject go = selectedObjects[i];
             *      if (go != null)
             *      {
             *          SelectionGizmo[] selectionGizmo = go.GetComponents<SelectionGizmo>();
             *          for (int g = 0; g < selectionGizmo.Length; ++g)
             *          {
             *              if (selectionGizmo[g] != null && selectionGizmo[g].Window == Window)
             *              {
             *                  Destroy(selectionGizmo[g]);
             *              }
             *          }
             *      }
             *  }
             * }*/

            if (m_positionHandle != null)
            {
                m_positionHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_positionHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_rotationHandle != null)
            {
                m_rotationHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_rotationHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_scaleHandle != null)
            {
                m_scaleHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_scaleHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_rectTool != null)
            {
                m_rectTool.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_rectTool.Drop.RemoveListener(OnDrop);
            }

            if (m_customHandle != null)
            {
                m_customHandle.BeforeDrag.RemoveListener(OnBeforeDrag);
                m_customHandle.Drop.RemoveListener(OnDrop);
            }

            if (m_selectionOverride != null)
            {
                m_selectionOverride.SelectionChanged -= OnRuntimeSelectionChanged;
                m_selectionOverride = null;
            }
        }
Exemple #14
0
        private void HandleRuntimeSelectionChange(IRuntimeSelection selection, UnityObject[] unselected)
        {
            if (!IsSelectionVisible)
            {
                return;
            }

            if (unselected != null)
            {
                for (int i = 0; i < unselected.Length; ++i)
                {
                    GameObject unselectedObj = unselected[i] as GameObject;
                    if (unselectedObj != null)
                    {
                        /*
                         * SelectionGizmo[] selectionGizmo = unselectedObj.GetComponents<SelectionGizmo>();
                         * for (int g = 0; g < selectionGizmo.Length; ++g)
                         * {
                         *  if (selectionGizmo[g] != null && selectionGizmo[g].Window == Window)
                         *  {
                         *      //DestroyImmediate(selectionGizmo[g]);
                         *      selectionGizmo[g].Internal_Destroyed = true;
                         *      Destroy(selectionGizmo[g]);
                         *  }
                         * }
                         */
                        ExposeToEditor exposeToEditor = unselectedObj.GetComponent <ExposeToEditor>();
                        if (exposeToEditor)
                        {
                            if (exposeToEditor.Unselected != null)
                            {
                                exposeToEditor.Unselected.Invoke(exposeToEditor);
                            }
                        }
                    }
                }
            }

            GameObject[] selected = selection.gameObjects;
            if (selected != null)
            {
                for (int i = 0; i < selected.Length; ++i)
                {
                    GameObject     selectedObj    = selected[i];
                    ExposeToEditor exposeToEditor = selectedObj.GetComponent <ExposeToEditor>();
                    if (exposeToEditor && !selectedObj.IsPrefab() && !selectedObj.isStatic)
                    {
                        /*
                         * SelectionGizmo selectionGizmo = selectedObj.GetComponent<SelectionGizmo>();
                         * if (selectionGizmo == null || selectionGizmo.Internal_Destroyed || selectionGizmo.Window != Window)
                         * {
                         *  if (!Editor.IsPlaymodeStateChanging || !Editor.IsPlaying)
                         *  {
                         *      if ((selectedObj.hideFlags & HideFlags.DontSave) == 0)
                         *      {
                         *
                         *          if (m_outlineManager == null)
                         *          {
                         *              selectionGizmo = selectedObj.AddComponent<SelectionGizmo>();
                         *              if (m_selectionGizmoPrefab != null)
                         *              {
                         *                  selectionGizmo.SelectionGizmoModel = Instantiate(m_selectionGizmoPrefab, selectionGizmo.transform);
                         *                  //selectionGizmo.SelectionGizmoModel.layer = Editor.CameraLayerSettings.RuntimeGraphicsLayer;
                         *              }
                         *          }
                         *      }
                         *  }
                         * }
                         * if (selectionGizmo != null)
                         * {
                         *  selectionGizmo.Window = Window;
                         * }*/

                        if (exposeToEditor.Selected != null)
                        {
                            exposeToEditor.Selected.Invoke(exposeToEditor);
                        }
                    }
                }
            }
        }
Exemple #15
0
        public void Exec(string cmd)
        {
            cmd = cmd.ToLower();
            GameObject go = null;

            switch (cmd)
            {
            case "createempty":
                go      = new GameObject();
                go.name = "Empty";
                break;

            case "createemptychild":
                go      = new GameObject();
                go.name = "Empty";
                IRuntimeSelection selection = m_editor.Selection;
                go.transform.SetParent(selection.activeTransform, false);
                break;

            case "cube":
                go = GameObject.CreatePrimitive(PrimitiveType.Cube);
                break;

            case "sphere":
                go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                break;

            case "capsule":
                go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                break;

            case "cylinder":
                go = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
                break;

            case "plane":
                go = GameObject.CreatePrimitive(PrimitiveType.Plane);
                break;

            case "quad":
                go = GameObject.CreatePrimitive(PrimitiveType.Quad);
                break;

            case "directionallight":
            {
                go      = new GameObject();
                go.name = "Directional Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Directional;
            }
            break;

            case "pointlight":
            {
                go      = new GameObject();
                go.name = "Point Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Point;
            }
            break;

            case "spotlight":
            {
                go      = new GameObject();
                go.name = "Spot Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Point;
            }
            break;

            case "camera":
            {
                go = new GameObject();
                go.SetActive(false);
                go.name = "Camera";
                go.AddComponent <Camera>();
                go.AddComponent <GameViewCamera>();
            }
            break;
            }

            if (go != null)
            {
                Vector3     pivot      = Vector3.zero;
                IScenePivot scenePivot = GetScenePivot();
                if (scenePivot != null)
                {
                    pivot = scenePivot.SecondaryPivot.position;
                }
                go.transform.position = pivot;
                go.AddComponent <ExposeToEditor>();
                go.SetActive(true);
                m_editor.RegisterCreatedObjects(new[] { go });
            }
        }
        public void Exec(string cmd)
        {
            cmd = cmd.ToLower();
            GameObject go = null;

            switch (cmd)
            {
            case "createempty":
                go      = new GameObject();
                go.name = "Empty";
                break;

            case "createemptychild":
                go      = new GameObject();
                go.name = "Empty";
                IRuntimeSelection selection = m_editor.Selection;
                go.transform.SetParent(selection.activeTransform, false);
                break;

            case "cube":
                go = GameObject.CreatePrimitive(PrimitiveType.Cube);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "sphere":
                go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "capsule":
                go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "cylinder":
                go = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "plane":
                go = GameObject.CreatePrimitive(PrimitiveType.Plane);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "quad":
                go = GameObject.CreatePrimitive(PrimitiveType.Quad);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "directionallight":
            {
                go      = new GameObject();
                go.name = "Directional Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Directional;
            }
            break;

            case "pointlight":
            {
                go      = new GameObject();
                go.name = "Point Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Point;
            }
            break;

            case "spotlight":
            {
                go      = new GameObject();
                go.name = "Spot Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Spot;
            }
            break;

            case "camera":
            {
                go = new GameObject();
                go.SetActive(false);
                go.name = "Camera";
                go.AddComponent <Camera>();
                go.AddComponent <GameViewCamera>();
            }
            break;
            }

            if (go != null)
            {
                m_editor.AddGameObjectToScene(go);
            }
        }
Exemple #17
0
        public void Exec(string cmd)
        {
            cmd = cmd.ToLower();
            GameObject go = null;

            switch (cmd)
            {
            case "createempty":
                go      = new GameObject();
                go.name = "Empty";
                break;

            case "createemptychild":
                go      = new GameObject();
                go.name = "Empty";
                IRuntimeSelection selection = m_editor.Selection;
                go.transform.SetParent(selection.activeTransform, false);
                break;

            case "cube":
                go = GameObject.CreatePrimitive(PrimitiveType.Cube);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "sphere":
                go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "capsule":
                go = GameObject.CreatePrimitive(PrimitiveType.Capsule);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "cylinder":
                go = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "plane":
                go = GameObject.CreatePrimitive(PrimitiveType.Plane);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "quad":
                go = GameObject.CreatePrimitive(PrimitiveType.Quad);
                go.GetComponent <Renderer>().sharedMaterial = m_defaultMaterial;
                break;

            case "directionallight":
            {
                go      = new GameObject();
                go.name = "Directional Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Directional;
            }
            break;

            case "pointlight":
            {
                go      = new GameObject();
                go.name = "Point Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Point;
            }
            break;

            case "spotlight":
            {
                go      = new GameObject();
                go.name = "Spot Light";
                Light light = go.AddComponent <Light>();
                light.type = LightType.Point;
            }
            break;

            case "camera":
            {
                go = new GameObject();
                go.SetActive(false);
                go.name = "Camera";
                go.AddComponent <Camera>();
                go.AddComponent <GameViewCamera>();
            }
            break;

                #region Imp
            case "机器人":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "总控":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "总控电气柜":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "抽拉底座":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "立体库":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "车床":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "输送机":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;

            case "铣床":
                go      = Instantiate(Resources.Load("Model/" + cmd) as GameObject);
                go.name = cmd;
                break;
                #endregion
            }

            if (go != null)
            {
                Vector3     pivot      = Vector3.zero;
                IScenePivot scenePivot = GetScenePivot();
                if (scenePivot != null)
                {
                    pivot = scenePivot.SecondaryPivot;
                }
                go.transform.position = pivot;
                go.AddComponent <ExposeToEditor>();

                Modle equipment = new Modle()
                {
                    modleName = go.name,
                    position  = Util.Vector3ToVector3d(go.transform.position),
                    rotation  = Util.Vector3ToVector3d(go.transform.localRotation.eulerAngles)
                };
                //go.AddComponent<Equipment>();

                go.SetActive(true);
                m_editor.RegisterCreatedObjects(new[] { go });

                RuntimeEditor.modelDic.Add(go, equipment);
                RuntimeEditor.solutionInfo.equipmentList.Add(equipment);
            }
        }