为什么我不能在 Scriptable Objects 检查器中拖放 Sprite?

Why cant I drag and drop a Sprite in a Scriptable Objects inspector?

所以我有一个可编写脚本的对象,它包含一个 public 图像变量。我想将图像拖到检查器中,但我无法让它工作。我已将纹理类型更改为 Sprite(2D 和 UI)。我试图找到有类似问题的人,但我能找到的唯一答案是将纹理类型更改为精灵。我需要将纹理类型用于 UI 用于显示技能冷却时间的前玩家 HUD。

Image Inspector 图片

Scriptable object inspector 图片

在“FireBall.cs”中使用“Texture”或“Sprite”而不是“Image”作为“abilityIcon”的类型。

Image 是 class 继承自 UnityEngine.UI namespace。并且要显示需要 Canvas 组件。

您可以使用包含精灵的图像创建预制件,以便添加到可编写脚本的对象中,然后使用 abiltyIcon.sprite 以便在需要时接收原始精灵。


如果您不想创建预制件,那么解决方案将使用上述 Sprite class。

只需执行我前面提到的反向路径即可。而不是让 ImageSprite 你会有一个 Sprite 并将它添加到代码中的空 Image

考虑到您正在使用可编写脚本的对象,请检查此解决方案是否比第一个更好。