[Unity ECS] Entity交互方式选择 ComponentDataFromEntity vs Entity Command Buffer(ECB)
Posted u010019717
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Unity ECS] Entity交互方式选择 ComponentDataFromEntity vs Entity Command Buffer(ECB)相关的知识,希望对你有一定的参考价值。
实体互动的选择Options for Entity interaction - Unite Copenhagen 2019
必看的一个视频呀!
https://www.youtube.com/watch?v=KuGRkC6wzMY
https://www.slideshare.net/unity3d/options-for-entity-interaction-unite-copenhagen-2019
交互是游戏的基础,包括玩家与游戏的交互方式和接收响应,以及游戏各部分之间的交互方式。Unity的Entities包为 编写系统提供了多种选择,在这些系统中,实体之间可以相互交流信息。本讲座介绍了这些选项,并说明了每种方法的利弊。观看它以获得使用Unity的实体组件系统(ECS)时选择代码策略的提示!主讲人:月神迈耶
两个情景: 跟随, 按钮点击的事件处理:
一种解决方法:
这样的代码肯定会导致将来的混乱。
分析关系 Relationships:
数据A 依赖数据B(前者的值依赖于后者)
就像追随示例, 追随者的速度依赖于 leader的相对位置。
按钮示例也是一样的,门的状态取决于 按钮。
下面两种情况的关系:
也就是今天的主题其实不应该是 Options for Entity interaction, 而是 Options for Data Relationships
实现我们数据关系的步骤:
- 理解数据的转换(输入,输出)
- 转换的成本,频率, 应用他
- 选择合适的工具
Practice makes Perfect 实践使完美
识别数据:
识别域
确定频率
时间复杂度,空间复杂度。 (这个代码的成本相对较低)
Recap概括一下。
第一个通信的工具: ComponentDataFromEntity
评价:
A word of caution - Writing
谨慎一点 - Writing 操作 (安全性的考虑), 下面这种写法 可能会抛出异常。
当然了这种安全性检测,你可以屏蔽掉, 使用 属性。 那么安全问题就是你自己负责。
Write Relationships
Entity Command Buffer (ECB)
Read Relationships VS Write Relationships
读, 高频时可以使用,
写,低频时使用可以使用。
总结
什么是关系
就是下面两个工具处理 交互。 对读友好(高频),对写友好(低频)
评论:
对我来说,到目前为止Unite 2019上最重要,最有见地的演讲,谢谢!
这是一个很棒而有用的谈话!这专门解决了我的问题和想法
好说!很高兴获得有关如何选择代码策略的思考技巧。。我真的很感激。谢谢。
注意官方给的不对, ppt 是讲关于 FPS示例项目的
以上是关于[Unity ECS] Entity交互方式选择 ComponentDataFromEntity vs Entity Command Buffer(ECB)的主要内容,如果未能解决你的问题,请参考以下文章
[Unity ECS]使用 Entity Command Buffers – Unite Copenhagen 2019