HhualinLv. 212024年7月25日发布 #2 2024年7月25日星期四 01点14分 看这个 NetComponentOnReadInvoker_Gate 它会根据 PlayerId 去获取 Location。通过两个key:LocationType 和 PlayerId。 那么Location是 什么时候注册的呢? 你可以通过 LocationType.Unit 去搜索它的使用就可以找到。 注意一个 LocationEntity 注册的时候出了需要 AddLocation 还要在这个 Entity挂上 MailBoxComponent。
HhualinLv. 212024年7月26日发布 #4 2024年7月26日星期五 02点59分 风的方向 字母鸽在教程中的做法是定义新的消息接口:IUnitCustomRequest : ILocationRequest。 然后再 _Gate 这个脚本中,添加新的 case IUnitCustomRequest:。 根据这个接口对应的Id 根据 location 找到自定义的unit。 ILocationRequest 使用了 Player.Id。你自定义的Unit 可以是另一个ID存到 session 身上的组件中。
HhualinLv. 212024年7月26日发布 #5 2024年7月26日星期五 03点04分 最佳回复由 风的方向 选择风的方向 进一步的,你可以注意到,Location 现在有两个 Key 一个 Type 一个 Id。 那么如果你自定义的 Unit 跟 Map 中 的 Unit 不在一个 Root下,它们的Id 可以是一致的 都可以等于 PlyaerId。 这样的话 只要你的 ILocationRequest 带上不同的 LocationType,它对应不同的 Unit, 就可以在 _Gate 这边实现分发到不同的 Unit。