private static void AddRenderableSO() { SceneObject so = new SceneObject("Renderable"); GameObjectUndo.RecordNewSceneObject(so); so.AddComponent <Renderable>(); GameObjectUndo.ResolveDiffs(); FocusOnHierarchyOrScene(); EditorApplication.SetSceneDirty(); }
private static void AddGUIWidgetSO() { SceneObject so = new SceneObject("GUI widget"); GameObjectUndo.RecordNewSceneObject(so); so.AddComponent <GUIWidget>(); GameObjectUndo.ResolveDiffs(); FocusOnHierarchyOrScene(); EditorApplication.SetSceneDirty(); }
private static void AddParticleSystemSO() { SceneObject so = new SceneObject("Particle system"); GameObjectUndo.RecordNewSceneObject(so); so.AddComponent <ParticleSystem>(); GameObjectUndo.ResolveDiffs(); FocusOnHierarchyOrScene(); EditorApplication.SetSceneDirty(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
/// <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(); }