Esempio n. 1
0
        private static void AddRenderableSO()
        {
            SceneObject so = new SceneObject("Renderable");

            GameObjectUndo.RecordNewSceneObject(so);
            so.AddComponent <Renderable>();
            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 2
0
        private static void AddGUIWidgetSO()
        {
            SceneObject so = new SceneObject("GUI widget");

            GameObjectUndo.RecordNewSceneObject(so);
            so.AddComponent <GUIWidget>();
            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 3
0
        private static void AddParticleSystemSO()
        {
            SceneObject so = new SceneObject("Particle system");

            GameObjectUndo.RecordNewSceneObject(so);
            so.AddComponent <ParticleSystem>();
            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 4
0
        private static void Add3DDisc()
        {
            SceneObject so = new SceneObject("Disc");

            GameObjectUndo.RecordNewSceneObject(so);
            Renderable renderable = so.AddComponent <Renderable>();

            renderable.Mesh = Builtin.Disc;
            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 5
0
        private static void AddDirectionalLightSO()
        {
            SceneObject so = new SceneObject("Directional light");

            GameObjectUndo.RecordNewSceneObject(so);
            Light light = so.AddComponent <Light>();

            light.Type = LightType.Directional;
            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 6
0
        private static void AddCameraSO()
        {
            SceneObject so = new SceneObject("Camera");

            GameObjectUndo.RecordNewSceneObject(so);

            Camera cam = so.AddComponent <Camera>();

            cam.Main = true;

            GameObjectUndo.ResolveDiffs();

            FocusOnHierarchyOrScene();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 7
0
        private static void AddAudioSource()
        {
            SceneObject so = Selection.SceneObject;

            if (so == null)
            {
                so = new SceneObject("AudioSource");

                GameObjectUndo.RecordNewSceneObject(so);
                so.AddComponent <AudioSource>();

                FocusOnHierarchyOrScene();
            }
            else
            {
                GameObjectUndo.RecordSceneObject(so, false, "Added a AudioSource component");
                so.AddComponent <AudioSource>();
            }

            GameObjectUndo.ResolveDiffs();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 8
0
        private static void AddSphericalJoint()
        {
            SceneObject so = Selection.SceneObject;

            if (so == null)
            {
                so = new SceneObject("SphericalJoint");

                GameObjectUndo.RecordNewSceneObject(so);
                so.AddComponent <SphericalJoint>();

                FocusOnHierarchyOrScene();
            }
            else
            {
                GameObjectUndo.RecordSceneObject(so, false, "Added a SphericalJoint component");
                so.AddComponent <SphericalJoint>();
            }

            GameObjectUndo.ResolveDiffs();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 9
0
        private static void AddCharacterController()
        {
            SceneObject so = Selection.SceneObject;

            if (so == null)
            {
                so = new SceneObject("CharacterController");

                GameObjectUndo.RecordNewSceneObject(so);
                so.AddComponent <CharacterController>();

                FocusOnHierarchyOrScene();
            }
            else
            {
                GameObjectUndo.RecordSceneObject(so, false, "Added a CharacterController component");
                so.AddComponent <CharacterController>();
            }

            GameObjectUndo.ResolveDiffs();
            EditorApplication.SetSceneDirty();
        }
Esempio n. 10
0
        /// <summary>
        /// Triggered by the runtime when a resource is dropped on the scene tree view.
        /// </summary>
        private void Internal_DoOnResourceDropped(SceneObject parent, string[] resourcePaths)
        {
            if (resourcePaths == null)
            {
                return;
            }

            List <SceneObject> addedObjects = new List <SceneObject>();

            for (int i = 0; i < resourcePaths.Length; i++)
            {
                ResourceMeta meta = ProjectLibrary.GetMeta(resourcePaths[i]);
                if (meta == null)
                {
                    continue;
                }

                if (meta.ResType == ResourceType.Mesh)
                {
                    if (!string.IsNullOrEmpty(resourcePaths[i]))
                    {
                        string meshName = Path.GetFileNameWithoutExtension(resourcePaths[i]);

                        Mesh mesh = ProjectLibrary.Load <Mesh>(resourcePaths[i]);
                        if (mesh == null)
                        {
                            continue;
                        }

                        SceneObject so = new SceneObject(meshName);

                        GameObjectUndo.RecordNewSceneObject(so);
                        so.Parent = parent;

                        Renderable renderable = so.AddComponent <Renderable>();
                        renderable.Mesh = mesh;
                        GameObjectUndo.ResolveDiffs();

                        addedObjects.Add(so);
                    }
                }
                else if (meta.ResType == ResourceType.Prefab)
                {
                    if (!string.IsNullOrEmpty(resourcePaths[i]))
                    {
                        Prefab      prefab = ProjectLibrary.Load <Prefab>(resourcePaths[i]);
                        SceneObject so     = UndoRedo.Instantiate(prefab, "Instantiating " + prefab.Name);
                        so.Parent = parent;

                        addedObjects.Add(so);
                    }
                }
            }

            if (addedObjects.Count > 0)
            {
                EditorApplication.SetSceneDirty();
            }

            Selection.SceneObjects = addedObjects.ToArray();
        }