c# - 如何在 Unity 的检查器中配置嵌套对象
问题描述
我尝试在 Unity 的 C# 脚本中创建嵌套对象并更改其中的值。
嵌套对象类
using UnityEngine;
public class Replica : ScriptableObject
{
public string Text;
public int Speed = 1;
public int PersonaID = 0;
}
具有嵌套对象的类
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/DialogContainer", order = 1)]
public class DialogContainer : ScriptableObject {
public Replica[] Replicas; // Here is nested object
public Sprite[] Avatars;
}
当我创建 ScriptableObject 时,我看到: Photo of ScriptableObject interface
这里我只能放一个类的实例,但我不能配置它。
但是我想直接在检查器中更改值,而无需像在 InputManager 中那样创建和插入类“副本”的对象,我可以在轴上再创建一个 obj,打开它并像这样在检查器中更改值。 我想看的界面照片
解决方案
如果您想在检查器中配置您的类,则该类不能派生自MonoBehaviour
或ScriptableObject
带有标签,[System.Serializable]
而不是您可以在嵌套类中序列化它而不创建实例。
复制品:
[System.Serializable]
public class Replica
{
public string Text;
public int Speed = 1;
public int PersonaID = 0;
}
对话容器:
using System.Collections.Generic;
using UnityEngine;
public class DialogContainer : MonoBehaviour{
public List<Replica> Replicas;
public Sprite[] Avatars;
}
比我看到的:Inspector screenshot
推荐阅读
- ruby-on-rails - Rails/RSpec - 如何为处理程序编写 rspec 测试?
- postgresql - 服务器停止后 Postgres 数据仍在“使用中”
- rust - 枚举如何使用堆或堆栈类型处理其子类型?
- c# - 如何在 SQL 中插入 1M 模型
- ios - iOS 上的 Firebase Realtime:无法访问实时数据库
- javascript - 即使代码按预期运行,控制台错误,如何解决 undefined
- python-3.x - Pandas - 对索引中的值进行插值
- c# - 如何从 SCOM 获取管理包捆绑文件信息?
- javascript - 无法在 window.onload 处读取 null 的属性“getContext”
- javascript - Javascript剥离子字符串并附加它