Unity 通过配置文件生成代码

文章介绍了如何在Unity编辑器中使用自定义脚本根据ScriptableObject、预制体路径、动画剪辑、Excel配置和UI元素生成对应的C#代码,以简化配置管理和代码维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在Unity编辑器模式下,根据配置文件动态生成代码可以通过编写自定义编辑器脚本实现。以下是一些场景下的5个简化示例,分别说明如何基于不同的配置数据来生成对应的C#代码:

示例1:基于ScriptableObject的配置生成类

using UnityEngine;
using UnityEditor;
using System.IO;

[CreateAssetMenu(fileName = "NewConfig.asset", menuName = "Configuration/New Config")]
public class ConfigurationSO : ScriptableObject
{
   
   
    public string[] GameObjectNames;

    [MenuItem("Assets/Generate Code From Config")]
    static void GenerateCode()
    {
   
   
        var config = Selection.activeObject as ConfigurationSO;
        if (config != null)
        {
   
   
            StringBuilder sb = new StringBuilder();
            foreach (var name in config.GameObjectNames)
            {
   
   
                sb.AppendLine($"public GameObject {
     
     name};");
            }

            string className = "GeneratedConfig";
            string filePath = Path.Combine(Application.dataPath, $"Scripts/{
     
     className}.cs");
            File.WriteAllText(filePath, $@"
using UnityEngine;

public class {
     
     className}
{
    
    {
    {
     
     sb.ToString()}
}}
");

            AssetDatabase.Refresh();
        }
        else
        {
   
   
            Debug.LogError("Please select a ConfigurationSO asset.");
        }
    }
}

这个例子中,我们创建了一个ScriptableObject类型ConfigurationSO,其中包含一个字符串数组用于存储游戏对象名称。当用户通过菜单命令“Assets/Generate Code From Config”执行时,会根据这些名称动态生成一个新的C#类,该类包含了与配置中每个名称相对应的游戏对象字段。

示例2:预制体路径列表生成加载代码

using UnityEngine;
using UnityEditor;
using System.Collections.Generic;
using System.IO;

public class 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极致人生-010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值