我可以保证从 ICharacter 界面派生的所有类也将继承自 MonoBehaviour 类。 MonoBehaviour 类具有转换属性。
然而,以下显然失败了,因为界面没有实现转换属性:
ICharacter character;
var t = character.transform;
是否可以进行上述工作,而不会创建另一个将继承自 MonoBehaviour 的父类(即MyCharacter:Character:MonoBehaviour)?我尝试将 transform 属性添加到接口,但它会隐藏父类的属性。
基本上我需要以某种方式使用接口调用基类的属性。
为我的角色制作基类似乎是可行的,但我无法保证可以从同一个角色类继承所有这些角色。但是,所有这些都将100%继承自 MonoBehaviour 类。
答案 0 :(得分:8)
如果您希望所有ICharacter
类型都有transform
成员,那么该应该位于界面中。
当一个类型实现一个接口而一个基类有一个合适的成员时,该成员不需要重新实现;基类成员可以绑定到接口。
此外,如果需要提供仅通过接口公开的实现,则可以显式实现接口。