Esempio n. 1
0
    // シーン情報作成
    private static void CreateScene()
    {
        // シーン情報取得
        Dictionary <string, string> scenesNameDictionary = new Dictionary <string, string>();
        Dictionary <string, int>    scenesNoDictionary   = new Dictionary <string, int>();

        for (int i = 0; i < EditorBuildSettings.scenes.Count(); i++)
        {
            string sceneName = Path.GetFileNameWithoutExtension(EditorBuildSettings.scenes[i].path);
            scenesNameDictionary[sceneName] = sceneName;
            scenesNoDictionary[sceneName]   = i;
        }

        // スクリプト作成
        ConstantsNameCreator <string> nameCreator = new ConstantsNameCreator <string>();

        nameCreator.Create("SceneName", "シーン名クラス", scenesNameDictionary);
        ConstantsEnumCreator <int> enumCreator = new ConstantsEnumCreator <int>();

        enumCreator.Create("SceneEnum", "シーン番号クラス", scenesNoDictionary);

        // シーンデータ書出し
        {
            // ファイル情報設定
            string dataPath = DirectoryPath.ResourcePath + FileName.SceneDataFile + Extension.AssetUnity;

            //SceneDataを新規作成、既にあるものは削除
            SceneData data = ScriptableObject.CreateInstance <SceneData>();
            AssetDatabase.DeleteAsset(dataPath);
            AssetDatabase.CreateAsset(data, dataPath);

            data.hideFlags = HideFlags.NotEditable;

            foreach (KeyValuePair <string, int> valuePair in scenesNoDictionary)
            {
                SceneData.Param param = new SceneData.Param();
                param.Name = valuePair.Key;
                param.No   = valuePair.Value;

                data.list.Add(param);
            }

            //変更を反映
            ScriptableObject obj = AssetDatabase.LoadAssetAtPath(dataPath, typeof(ScriptableObject)) as ScriptableObject;
            EditorUtility.SetDirty(obj);
        }
    }
Esempio n. 2
0
    // ソーティングレイヤー情報作成
    private static void CreateSortingLayer()
    {
        // ソーティングレイヤー情報取得
        string[] sortingLayerName;
        {
            Type         internalEditorUtilityType = typeof(InternalEditorUtility);
            PropertyInfo sortingLayersProperty     = internalEditorUtilityType.GetProperty("sortingLayerNames", BindingFlags.Static | BindingFlags.NonPublic);
            sortingLayerName = (string[])sortingLayersProperty.GetValue(null, new object[0]);
        }

        // ソーティングレイヤー名取得
        Dictionary <string, string> sortingLayerDictionary = sortingLayerName.ToDictionary(value => value);

        // スクリプト作成
        ConstantsNameCreator <string> nameCreator = new ConstantsNameCreator <string>();

        nameCreator.Create("SortingLayerName", "ソーティングレイヤー名クラス", sortingLayerDictionary);
    }