所以我想为 API 已经密封的类型创建一个扩展方法。
如果您了解扩展方法,以下内容应该看起来很熟悉。
private static List<Member> memberList = new List<Member>();
public static List<Member> GetMemberList(this GameObject go)
{
return memberList;
}
注意,要声明一个扩展方法,它需要是静态的,因为它需要是静态的,所以我通过 GameObject 类型访问的 List 必须是静态的。我希望每个游戏对象都有自己的成员列表。但是我很确定,因为这是一个静态字段,每个实例化的 GameObject 都将指向同一个静态成员列表。
那么我的假设是否正确?如果是这样,什么可能是替代方案?我想避免将 GameObject 放在也包含 memberList 的包装类中,因为 api 只允许在运行时检测和操作 GameObject。有一些方法可以通过 gameObject 反向引用包装类,但这会增加我想要避免的代码的复杂性。