using UnityEngine; using UnityEditor; using System.IO; using System.Collections; namespace Fungus { public class FungusScriptMenuItems { [MenuItem("GameObject/Fungus/Fungus Script")] static void CreateFungusScript() { GameObject newFungusScriptGO = new GameObject(); newFungusScriptGO.name = "FungusScript"; FungusScript fungusScript = newFungusScriptGO.AddComponent(); Sequence sequence = Undo.AddComponent(newFungusScriptGO); sequence.nodeRect.x += 60; sequence.nodeRect.y += 60; GameStarted gameStarted = Undo.AddComponent(newFungusScriptGO); gameStarted.parentSequence = sequence; sequence.eventHandler = gameStarted; fungusScript.selectedSequence = sequence; fungusScript.scrollPos = Vector2.zero; Undo.RegisterCreatedObjectUndo(newFungusScriptGO, "Create Fungus Script"); } public static GameObject SpawnPrefab(string prefabFile) { string prefabName = Path.GetFileNameWithoutExtension(prefabFile); // This will only succeed if Fungus is located in the root folder of the project GameObject prefab = Resources.LoadAssetAtPath(prefabFile, typeof(GameObject)) as GameObject; if (prefab == null) { return null; } GameObject go = PrefabUtility.InstantiatePrefab(prefab) as GameObject; go.name = prefabName; Camera sceneCam = SceneView.currentDrawingSceneView.camera; Vector3 pos = sceneCam.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 10f)); pos.z = 0f; go.transform.position = pos; Selection.activeGameObject = go; Undo.RegisterCreatedObjectUndo(go, "Create Object"); return go; } } }