求教下各位大佬 ILocationRequest 如何在Gate 上自动转发呢
看这个 NetComponentOnReadInvoker_Gate
它会根据 PlayerId 去获取 Location。通过两个key:LocationType 和 PlayerId。
那么Location是 什么时候注册的呢? 你可以通过 LocationType.Unit 去搜索它的使用就可以找到。
注意一个 LocationEntity 注册的时候出了需要 AddLocation 还要在这个 Entity挂上 MailBoxComponent。
hualin 我现在研究 自定义的unit 如何消息拓展转发
风的方向 字母鸽在教程中的做法是定义新的消息接口:IUnitCustomRequest : ILocationRequest。
然后再 _Gate 这个脚本中,添加新的 case IUnitCustomRequest:。
根据这个接口对应的Id 根据 location 找到自定义的unit。
ILocationRequest 使用了 Player.Id。你自定义的Unit 可以是另一个ID存到 session 身上的组件中。
风的方向 进一步的,你可以注意到,Location 现在有两个 Key 一个 Type 一个 Id。
那么如果你自定义的 Unit 跟 Map 中 的 Unit 不在一个 Root下,它们的Id 可以是一致的 都可以等于 PlyaerId。
这样的话 只要你的 ILocationRequest 带上不同的 LocationType,它对应不同的 Unit, 就可以在 _Gate 这边实现分发到不同的 Unit。