gpt4 book ai didi

unity-game-engine - 无法在检查器中分配 ScriptableObject

转载 作者:行者123 更新时间:2023-12-02 12:00:53 24 4
gpt4 key购买 nike

我在检查器中分配 ScriptableObjects 时遇到问题。

例如,我有这样的类(class):

using UnityEngine;

public class Buff : ScriptableObject {
public string buffName;
}

在一个单一行为派生类中,我有一个这样的成员:

public Buff testBuff;

在检查器中,我看到以下内容,但无法将脚本“Buff”拖放到此成员 enter image description here
它可以将 Buff 作为新脚本拖放,但我无法将其添加到“测试 Buff”中。

我尝试的不是拖放,而是简单地创建一个 Buff 实例,如下所示:

public Buff testBuff = new Buff();

这有效: enter image description here不过我相信拖放也应该有效,而且上面给出了警告:

Buff must be instantiated using the ScriptableObject.CreateInstance method instead of new Buff.
UnityEngine.ScriptableObject:.ctor()
Buff:.ctor()
...

我使用的是 Unity“5.0.2f1 Personal”,这是最新版本。

最佳答案

您需要创建一个使用您的可编程对象作为其类型的资源文件。这只能通过编辑器脚本来完成。 wiki 上有一个通用的。 .

本质上,您只需为您拥有的每个可编写脚本的对象类型创建一个菜单项,使用该菜单项创建这些类型的资源,然后使用您希望它们具有的值修改资源。重要的是要记住,SCO 将用作模板,如果您在编辑器中或使用代码修改 SCO,这些更改将立即对引用 SCO 的所有游戏对象和组件生效。

关于unity-game-engine - 无法在检查器中分配 ScriptableObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30616276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com