예제 #1
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
         DontDestroyOnLoad(gameObject);
     }
     else
     {
         Destroy(gameObject);
     }
 }
    bool isGameOver;                            //Is the game currently over?

    // private GameObject player1;


    // LevelManager levelManager;
    void Awake()
    {
        //here is the beginning of the singleton pattern
        //If a Game Manager exists and this isn't it...
        if (current != null && current != this)
        {
            //...destroy this and exit. There can only be one Game Manager
            Destroy(gameObject);
            return;
        }

        //Set this as the current game manager
        current = this;

        //Create out collection to hold the orbs
        // orbs = new List<Orb>();
        // collectedOrbs = new List<Orb>();
        // startingPlayerPosition = new Vector3(3.66f, 17, 0);



        //Persis this object between scene reloads
        DontDestroyOnLoad(gameObject);
    }
    private void Draw2dSingletonArchitectureOptions()
    {
        #region 1 gui create folders
        GUILayout.BeginArea(architectureSectionRect);
        EditorGUILayout.LabelField("1. create starter project structure", EditorStyles.boldLabel);
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.BeginVertical();


        EditorGUILayout.LabelField("-Scenes");
        EditorGUILayout.LabelField("-Scripts");
        EditorGUILayout.LabelField("-Animation");
        EditorGUILayout.LabelField("-Audio");
        EditorGUILayout.LabelField("-Materials");
        EditorGUILayout.EndVertical();
        EditorGUILayout.BeginVertical();
        EditorGUILayout.LabelField("-Meshes");
        EditorGUILayout.LabelField("-Prefabs");
        EditorGUILayout.LabelField("-Artwork");
        EditorGUILayout.LabelField("-Textures");
        EditorGUILayout.LabelField("-Sprites");
        EditorGUILayout.EndVertical();
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("1. create starter project struture"))
        {
            OnWizardCreate();
        }

        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        #endregion
        #region 2 gui-add scene(s) and architecture singleton
        EditorGUILayout.LabelField("2. add scene(s), and game manager for singleton app", EditorStyles.boldLabel);
        EditorGUILayout.LabelField("Create Scene with Game Manager");


        stringForGameName = EditorGUILayout.TextField("Game Name", stringForGameName);
        shortNameGameName = EditorGUILayout.TextField("Short Name", shortNameGameName);
        EditorGUILayout.Space();

        EditorGUILayout.BeginHorizontal();

        EditorGUILayout.BeginVertical();
        // includeWebScene = EditorGUILayout.Toggle("include preload scene?", includeWebScene);
        includeWebScene   = EditorGUILayout.Toggle("include Web scene?", includeWebScene);
        includeMainScene  = EditorGUILayout.Toggle("include main scene?", includeMainScene);
        includeTitleScene = EditorGUILayout.Toggle("include title scene", includeTitleScene);
        includeMenuScene  = EditorGUILayout.Toggle("include menu scene?", includeMenuScene);
        EditorGUILayout.EndVertical();



        EditorGUILayout.BeginVertical();
        includeSingletonGM = EditorGUILayout.Toggle("Include GameManager", includeSingletonGM);
        EditorGUILayout.EndVertical();

        EditorGUILayout.EndHorizontal();
        //////////////////////////////////////

        // includeGameManager = EditorGUILayout.BeginToggleGroup("Include Game Manager", includeGameManager);



        // includeECSGM = EditorGUILayout.Toggle("ECS", includeECSGM);
        // includeObserverPatternGM = EditorGUILayout.Toggle("Observer Pattern", includeObserverPatternGM);

        // includeMVCGM = EditorGUILayout.Toggle("MVC", includeMVCGM);
        // EditorGUILayout.EndToggleGroup();



        // includeMainScene = EditorGUILayout.Toggle();
        if (GUILayout.Button("2. create scene(s) and game manager"))
        {
            Debug.Log("Initiating New Starter project");

            var    newScene     = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
            string nameforscene = "";

            if (includeWebScene)
            {
                nameforscene = "Assets/Scenes/Web-" + stringForGameName + ".unity";
            }
            if (includeMainScene)
            {
                nameforscene = "Assets/Scenes/Main-" + stringForGameName + ".unity";
            }
            if (includeTitleScene)
            {
                nameforscene = "Assets/Scenes/Title-" + stringForGameName + ".unity";
            }
            if (includeMenuScene)
            {
                nameforscene = "Assets/Scenes/Menu-" + stringForGameName + ".unity";
            }
            bool saveOK = EditorSceneManager.SaveScene(newScene, nameforscene);
            Debug.Log("Saved Scene " + (saveOK ? "OK" : "Error!"));
            AssetDatabase.Refresh();



            ////////////////////////////////////////

            if (includeGameManager)
            {
                Debug.Log("creating game manager for singleton pattern");

                GameObject singletonGameManager = new GameObject("Singleton GameManager");
                singletonGameManager.AddComponent <SingletonGameManager>();

                SingletonGameManager sgm = singletonGameManager.GetComponent <SingletonGameManager>();
                sgm.gameName = stringForGameName;
                sgm.Version  = "0.0.1";


                bool saveOKagain = EditorSceneManager.SaveScene(newScene, nameforscene);
                Debug.Log("Saved Scene " + (saveOK ? "OK" : "Error!"));
                AssetDatabase.Refresh();
                // Instantiate(singletonGameManager, Vector3.zero, Quaternion.identity);
                //
                // WorkCycleEditorWindow.ShowWindow();
                // Texture2D texture = (Texture2D)AssetDatabase.LoadAssetAtPath("Packages/com.unity.images-library/Example/Images/image.png", typeof(Texture2D));
                // GameObject prefabToLoad = (GameObject)AssetDatabase.LoadAssetAtPath("Packages/com.madlibrarianstudios.simuframework/Runtime/Prefabs/prefbtest.prefab", typeof(GameObject));
                // SingletonGameManager
                // GameObject myobject = PrefabUtility.InstantiatePrefab(prefabToLoad) as GameObject;
                // AssetDatabase.Refresh();
            }
            InitTextures();
        }

        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.Space();



        #endregion



        GUILayout.EndArea();
        #endregion
    }