예제 #1
0
    void TileSelectGUI()
    {
        EditorGUILayout.LabelField("TileTool2D Tile", GUILayout.Width(100f));
        gTile = (GameObject)EditorGUILayout.ObjectField(gTile, typeof(GameObject), false, GUILayout.Width(175f));

        GUILayout.FlexibleSpace();

        if (GUILayout.Button("Create Tile", GUILayout.Width(120), GUILayout.Height(18)))
        {
            Tile2D oldTile;
            oldTile = PrefabCreator.CreateTile(null, false);
            String path = null;
            if (Directory.Exists("Assets/TileTool2D/Tiles/Wizard Tiles/"))
            {
                path = SaveFile("Assets/TileTool2D/Tiles/Wizard Tiles/", oldTile.transform.name + "", "prefab");
            }
            else
            {
                path = SaveFile("Assets/", oldTile.transform.name + "", "prefab");
            }

            if (path != null)
            {
                var asset = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject));
                if (asset)
                {
                    asset = PrefabUtility.ReplacePrefab(oldTile.gameObject, (GameObject)AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)));
                }
                else
                {
                    asset = PrefabUtility.CreatePrefab(path, oldTile.gameObject);
                }
                string spritePath = AssetDatabase.GetAssetPath(asset);
                gTile = (GameObject)AssetDatabase.LoadAssetAtPath(spritePath, typeof(GameObject));
            }
            DestroyImmediate(oldTile.gameObject);
        }



        if (gTile && GUI.changed)
        {
            tile = (Tile2D)gTile.GetComponent <Tile2D>();
        }
        else if (!gTile)
        {
            tile = null;
        }
        GUI.color = Color.white;
    }