You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#中能否将自定义类作为数组元素在编辑器中编辑配置?

实现方案

这个需求完全可以实现,只需对自定义类做一处补充即可:

  • 给DialogueBase类添加[System.Serializable]特性,该特性会让Unity对类实例做序列化处理,这样内部字段才能在Inspector面板中正常展示和编辑。

修改后的类代码如下:

[System.Serializable]
class DialogueBase
{
        [SerializeField] private string input;
        [SerializeField] private Color textColor;
        [SerializeField] private float delay;
}

之后你就可以在任意继承自MonoBehaviour的业务脚本中,声明该类的数组或List字段,注意字段需要设为public,或者加[SerializeField]特性才能在编辑器中显示:

public class DialogueController : MonoBehaviour
{
    // 数组形式
    [SerializeField] private DialogueBase[] dialogues;
    // 也可以用List,编辑器增删元素更方便
    // [SerializeField] private List<DialogueBase> dialogues;
}

将上述脚本挂载到场景中的GameObject上后,就可以在Inspector面板自由调整数组/List的长度,直接修改每个对话实例的三个参数,完全符合你的使用要求。

内容的提问来源于stack exchange,提问作者official

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 03:06:03