[Unity ECS] 如何找到有关 DOTS 包的更多信息?

63 篇文章 11 订阅
61 篇文章 5 订阅

您想了解有关 DOTS 内部结构的更多信息吗?

  我希望你通过寻找答案找到这篇文章的方法。我将快速向您展示如何了解有关 Unity 及其内部结构的更多信息。这是一个很好的灵感来源。作为布雷达应用科技大学的一名游戏开发学生,我可以将研究文件中获得的知识应用到我的 DOTS 项目中,也可以应用到我的 C++ 项目中。从 Unity 源代码中,您可以了解大量面向数据的设计或多线程的一般应用。

  我的队友 Menno 在创建native containers的过程中文档停止时,从文件中学到了很多东西!如果你还没有读过,那就去看看吧!自定义原生容器第 1 部分:基础知识 https://dotsplayground.com/2020/03/customnativecontainerpt1/)

从哪儿开始?

  每当你有一个Unity项目,并且你可以访问包的源代码。只能访问包的C#前端,不能访问C++设施。DOTS和它的相关包是用HPC#(High-performance C#)Unity的子集写的。这意味着我们可以接触到它的内部结构!

他们会在哪里?

  每当我们在Unity中下载一个包的时候,它们都被存储在同一个位置D:\DOTS\Library\PackageCache(用你的项目替换D:\DOTS)。在那里你通常有一个或大或小的软件包列表,这取决于你的项目。

重要的是 DOTS 和 Burst:

  • com.unity.burst@*
  • com.unity.dots.editor@*
  • com.unity.entities@*
  • com.unity.jobs@*
  • com.unity.collections@* - For NativeContainers

另外也许你想看看:

  • com.unity.mathematics@*
  • com.unity.physics@*

你能在里面找到什么?

  在这些包中,您可以找到 DOTS 的完整源代码,它使您更容易理解或研究事物的实现方式。或者,当没有文档时,您也可以将其用作参考来源。在那里你可以找到像 SIMD 指令这样的宝石。只需检查 com.unity.burst/Runtime/x86/。这将引导您:

如何在里面搜索?

  你现在可以争辩说,你可以使用VS并按F12或检查代码来查看DOTS/Burst等的实现?这并不可行,因为我必须告诉你。如果你这样做,你会有这样的结果。
在这里插入图片描述
  但这是有帮助的,因为这给了我们一个指示,我们可以在哪里找到这个的来源。第一个指示是命名空间。命名空间告诉我们要在哪个包里找。在这个例子中,它将在Unity.Entities中,翻译成com.unity.entities@*。

这将我们引向软件包,然后我们必须进入正确的文件夹。

例如 D:\git\DOTS-Playground\Library\PackageCache\com.unity.entities@0.6.0-preview.24。

  现在我可以搜索正确的文件。这是最艰巨的任务。它们并不总是很明显。在这种情况下,它们位于 Unity.Entities\Types 文件夹中。

现在我可以访问源代码:
在这里插入图片描述

总结

  这是一个学习很多内部知识的好方法。它允许你收集对架构的深刻理解。如果你对更多关于面向数据的设计感兴趣,一般来说,可以看看Richard Fabian的《面向数据的设计》。

  很快我将演示这如何帮助我理解关卡流式传输(请参阅这个很棒的视频)以及如何与我的队友 Niels 一起实现重建所有实体缓存功能 https://github.com/Nvs2000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值