Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以将默认引用分配给Unity中的非单行为类_C#_Class_Unity3d_Reference_Default - Fatal编程技术网

C# 是否可以将默认引用分配给Unity中的非单行为类

C# 是否可以将默认引用分配给Unity中的非单行为类,c#,class,unity3d,reference,default,C#,Class,Unity3d,Reference,Default,我有一个非单行为类,我想给它分配一个scriptableObject引用 如果我的类是从MonoBehavior派生的,我可以很容易地分配一个默认引用: 但如果不允许,则不允许: 有没有一种方法可以将默认引用分配给非单行为类?或者有没有其他解决办法?谢谢您不能将非单行为类用作游戏对象的组件 如果要在游戏中使用ScriptableObjects,请创建以下两个脚本: using UnityEngine; [CreateAssetMenu(menuName = "MyScriptableObj

我有一个非单行为类,我想给它分配一个scriptableObject引用
如果我的类是从MonoBehavior派生的,我可以很容易地分配一个默认引用:



但如果不允许,则不允许:




有没有一种方法可以将默认引用分配给非单行为类?或者有没有其他解决办法?谢谢

您不能将非单行为类用作游戏对象的组件

如果要在游戏中使用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(在unity中的project foder中创建RMB->单击MyScriptableObject)并在inspector中分配它

您有没有理由认为您的类不应该是单行为类?需要引用scriptableObject的类是从其他非单行为类派生的。所以我真的没有任何选择。我有这个问题已经有一段时间了,只是不知道什么是解决这类问题的好办法。谢谢你的回复,但我恐怕这不是我的选择。因为需要保存引用的类是从其他非单行为类派生的。这就是我所需要的,不幸的是这不起作用/您可以将非mono类的引用存储在
MyMonoComponent
中,并可以毫无问题地使用它