示例#1
0
        internal static void UpdateSceneValues(GenerateSetting setting, EditorBuildSettingsScene[] scenes)
        {
            if (!Settings.generateSceneValues)
            {
                return;
            }

            using (AssetEditing.Scope())
            {
                if (scenes == null)
                {
                    scenes = EditorBuildSettings.scenes;
                }

                var sceneIds   = new CSharpClass(setting.@namespace, "SceneId");
                var sceneNames = new CSharpClass(setting.@namespace, "SceneName");
                var scenePaths = new CSharpClass(setting.@namespace, "ScenePath");

                for (int i = 0; i < scenes.Length; i++)
                {
                    var scene     = scenes[i];
                    var sceneName = Path.GetFileNameWithoutExtension(scene.path);
                    var comment   = $"<para>{i}: {sceneName}</para>\n{scene.path}";
                    sceneIds.Fields.Add(new Variable("int", sceneName, i.ToString(), Modifier.Const, comment));
                    sceneNames.Fields.Add(new Variable("string", sceneName, sceneName.ToQuoted(), Modifier.Const, comment));
                    scenePaths.Fields.Add(new Variable("string", sceneName, scene.path.ToQuoted(), Modifier.Const, comment));
                }

                GenerateSourceCode(setting, "SceneValues.Generated", sceneIds, sceneNames, scenePaths);
            }
        }
示例#2
0
        private static void CreateSortingLayerValues(GenerateSetting setting)
        {
            var idClass   = new CSharpClass(setting.@namespace, "SortingLayerId");
            var nameClass = new CSharpClass(setting.@namespace, "SortingLayerName");

            idClass.UsingNamespaces.Add("UnityEngine");
            foreach (var layer in SortingLayer.layers)
            {
                var idValue = $"SortingLayer.NameToID(\"{layer.name}\")";
                idClass.Fields.Add(new Variable("int", layer.name, idValue, Modifier.StaticReadonly));
                nameClass.Fields.Add(new Variable("string", layer.name, layer.name.ToQuoted(), Modifier.Const));
            }

            GenerateSourceCode(setting, "SortingLayerValues.Generated", idClass, nameClass);
        }
示例#3
0
        private static void CreateTagValues(GenerateSetting setting)
        {
            var tags = InternalEditorUtility.tags;

            var tagNameClass = new CSharpClass(setting.@namespace, "TagName");

            foreach (var tag in tags)
            {
                tagNameClass.Fields.Add(new Variable("string", tag, tag.ToQuoted(), Modifier.StaticReadonly)
                {
                    Comment = tag,
                });
            }

            GenerateSourceCode(setting, "TagValues.Generated", tagNameClass);
        }
示例#4
0
        private void WriteClass(CSharpClass @class)
        {
            WriteSummaryComment(@class.Comment);
            WriteOneLine(@class.GetClassDeclareString());
            WriteOneLine("{");
            using (_indent.Scope)
            {
                foreach (var field in @class.Fields)
                {
                    WriteSummaryComment(field.Comment);
                    WriteOneLine(field.ToFieldDeclareString());
                    WriteNewLine();
                }
            }

            WriteOneLine("}");
        }