如何在MonoBehaviour

时间:2018-11-10 19:01:07

标签: c# unity3d entity-component-system

假设我有这样的东西

public class BodyPart : MonoBehaviour {
    private BodyPart parent;
    private List<BodyPart> children;
}

,我希望能够在添加/删除孩子和更换父母时保持两个链接。理想情况下,我只会创建属性,并确保在添加子代时更新父代,反之亦然。但是将list公开为一个属性(甚至是一个只读属性)-允许我这样做

bodyPart.Children.Add(new BodyPart());

不会调用设置器,因此父字段不会正确更新。

我已经看到人们将List <...>公开为ReadOnlyCollection <...>类型的属性,但是我不确定统一组件系统是否可以使用这种属性,也许还有一些更好的选择办法?另外-也许IReadOnlyCollection更好?

我知道我可以改用GameObjects的层次结构,并使用内置的父子关系统一,但是我不希望我的BodyParts是具有转换和所有功能的成熟GameObjects,它只是RPG的模型属性和库存系统。同样,该示例也得到了简化,最终我希望在该模型中编码的组件之间具有更多的逻辑和几种关系。

0 个答案:

没有答案