【发布时间】:2016-07-03 12:28:19
【问题描述】:
我有以下课程:
[Serializable]
public class BaseDamage : MonoBehaviour
{
public int MaximumDamage;
public int MinimumDamage;
public short SpellScaling;
}
以及包含该类的类:
public class SpellDamage : MonoBehaviour
{
public BaseDamage SpellBaseDamage;
}
当我将SpellDamage 脚本附加到游戏对象时,我希望能够从编辑器视图中设置BaseDamage 的值,但它只允许我将脚本附加到它。
我该怎么做?
【问题讨论】:
-
我不确定这是否可行,但如果可以,很可能需要一些自定义编辑器脚本。还有一种选择是让
SpellDamage继承自BaseDamage(顺便说一下,该类不需要Serializable)。 -
即使它继承了我在另一个类中仍然有
SpellDamage类,所以仍然不可能从编辑器中实例化它 -
在这种情况下,您应该记住,unity 是一个基于组件的系统。使
Damage类成为一个组件(只需将其附加到相应的游戏对象(例如玩家)并设置值)并让其他脚本引用该组件。 -
此外,您始终可以将值传递给一个类,例如
Start. -
永远,永远使用“Serializable”。作为一个好奇心,你甚至在哪里看到的?删除它。
标签: c# class unity3d editor instance