Esempio n. 1
0
    // レイヤー情報作成
    private static void CreateLayer()
    {
        // レイヤー番号取得
        Dictionary <string, int> layerNoDictionary = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => LayerMask.NameToLayer(layer));

        // レイヤーマスク番号取得
        Dictionary <string, int> layerMaskNoDictionary = InternalEditorUtility.layers.ToDictionary(layer => layer, layer => 1 << LayerMask.NameToLayer(layer));

        // スクリプト作成
        ConstantsEnumCreator <int> enumCreator = new ConstantsEnumCreator <int>();

        enumCreator.Create("LayerEnum", "レイヤー番号クラス", layerNoDictionary);
        enumCreator.Create("LayerMaskEnum", "レイヤーマスク番号クラス", layerMaskNoDictionary);
    }
Esempio n. 2
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);
        }
    }