是否可以将默认引用分配给 Unity 中的非 MonoBehaviour 类
Posted
技术标签:
【中文标题】是否可以将默认引用分配给 Unity 中的非 MonoBehaviour 类【英文标题】:Is it possible to assign default references to non MonoBehaviour class in Unity 【发布时间】:2019-03-11 14:28:11 【问题描述】:我有这个非 Monobehaviour 类,我想为它分配一个 scriptableObject 引用。 如果我的类从 Monobehaviour 派生,我可以轻松分配默认引用: 但如果不是,则不允许: 有没有办法将默认引用分配给非 Monobehaviour 类?或者是否有其他解决方法?谢谢
【问题讨论】:
你有理由认为你的课程不应该是 Monobehaviour 吗? 嗯,需要引用 scriptableObject 的类是从其他非 Monobehaviour 类派生的。所以在一件事情上我真的别无选择。我遇到这个问题已经有一段时间了,只是不知道什么是解决此类问题的好方法。 【参考方案1】:您不能使用非 MonoBehaviour 类作为 GameObject 的组件。
如果您想在游戏中使用 ScriptableObjects,请创建以下两个脚本:
using UnityEngine;
[CreateAssetMenu(menuName = "MyScriptableObject")]
public class MyScriptableObject : ScriptableObject
public string Data;
//Any other data
和你的组件使用这个 ScriptableObject
public class MyMonoComponent : MonoBehaviour
public MyScriptableObject Name; //Assignable in inspector
现在您可以创建 ScriptableObjects (RMB in project foder in unity -> 点击 MyScriptableObject) 并在检查器中分配它
【讨论】:
感谢您的回复,但恐怕这不是我的选择。因为需要保存引用的类是从非 MonoBehaviour 的其他类派生的。这就是我需要的方式,所以不幸的是这行不通..:/ 您可以将非单声道类的引用存储在MyMonoComponent
中并毫无问题地使用它以上是关于是否可以将默认引用分配给 Unity 中的非 MonoBehaviour 类的主要内容,如果未能解决你的问题,请参考以下文章
如何将指针分配给函数中的新对象,而该对象在退出后不会消失[重复]