当前位置: 首页 > news >正文

广安市网站建设_网站建设公司_加载速度优化_seo优化

高端的丹阳网站建设,企业宣传模板图片,网站二级栏目如何调用,wordpress 主题制作 视频 教程最近DOTS发布了正式的版本, 我们来分享一下System中如何基于SystemAPI.Query来迭代World中的数据#xff0c;方便大家上手学习掌握Unity DOTS开发。 SystemAPI.Query的使用 System有两种#xff0c;一种是Unmanaged 的ISystem,一种是managed 的SystemBase,这两种System都可…最近DOTS发布了正式的版本, 我们来分享一下System中如何基于SystemAPI.Query来迭代World中的数据方便大家上手学习掌握Unity DOTS开发。 SystemAPI.Query的使用 System有两种一种是Unmanaged 的ISystem,一种是managed 的SystemBase,这两种System都可以通过SystemAPI.Query来迭代与遍历,可以获取World里面的组件与Entity。SystemAPI.Query是运行在main thread的主线程上,SystemAPI.Query与C# 传统的foreach语句结合起来让我们遍历数据非常的方便。当我们要遍历一个World里面的entity数据的时候我们需要根据数据类型来筛选出对应的组件与Entity。函数SystemAPI.QueryT1,T2…(),其中t1, t2就是我们需要的component data的类型,查询的时候会遍历World 里面有这些组件的Entity,获取组件的引用。Query中的类型T1,T2,可以是以下7中类型: 对啦这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白也有一些正在从事游戏开发的技术大佬欢迎你来交流学习。 IAspect IComponentData ISharedComponentData DynamicBufferT RefROT RefRWT EnabledRefROT where T : IEnableableComponent, IComponentData EnabledRefRWT where T : IEnableableComponent, IComponentData 以下是给的一个代码示例,从World里面筛选出来有LocalTransform与RotationSpeed组件的Entity,并把它们的数据通过foreach来处理。示例代码如下: public partial struct MyRotationSpeedSystem : ISystem{[BurstCompile]public void OnUpdate(ref SystemState state){float deltaTime SystemAPI.Time.DeltaTime;foreach (var (transform, speed) in SystemAPI.QueryRefRWLocalTransform, RefRORotationSpeed())transform.ValueRW transform.ValueRO.RotateY(speed.ValueRO.RadiansPerSecond * deltaTime);}} RefRWT.ValueRW获取组件的可读写权限的组件引用, RefRWT.ValueRO只读属性的组件应用, RefROT.ValueRO组件的只读引用。如果你只要一个只读之间我们就可以单纯的用组件的名字来Query就可以了。public void OnUpdate(ref SystemState state){#region query-data-altfloat deltaTime SystemAPI.Time.DeltaTime;foreach (var (transform, speed) in SystemAPI.QueryRefRWLocalTransform, RotationSpeed())transform.ValueRW transform.ValueRO.RotateY(speed.RadiansPerSecond * deltaTime);#endregion} 其中RotaionSpeed为只读的组件实例的引用。如果我们在system里面迭代数据的时候需要组件对应的Entity,我们使用API函数WithEntityAcess,示例代码如下: public void OnUpdate(ref SystemState state){float deltaTime SystemAPI.Time.DeltaTime;#region entity-accessforeach (var (transform, speed, entity) in SystemAPI.QueryRefRWLocalToWorld, RefRORotationSpeed().WithEntityAccess()){// Do stuff;}#endregion} SystemAPI.Query的内部实现 当我们在System代码里面调用foreachSystemAPI.Query的时候,我们的自动代码生成器会根据Query调用的时候传递的参数的类型来生成EntityQuery字段到当前的System类里面(正因如此,我们在定义一个System类型的时候都要加partial)。同时替换掉SystemAPI.Query代码。这样运行的时候使用EntityQuery字段来帮我们找到对应的组件来进行迭代处理。SystemAPI.Query也有它的一些局限性,使用SystemAPI.Query API的时候我们无法对Dynamic Buffer组件来做只读的访问权限只能获得可读写的访问权限。我们不能够保存foreach的结果因为foreach是自动代码生成的时候根据foreach在编译的时候自动生成的EntityQuery,没有办法去缓存EntityQuery的结果。 今天的 SystemAPI.Query如何使用,就到这里了,更多的DOTS系列关注我们,持续更新
http://www.ihoyoo.com/news/129707.html

相关文章:

  • 手机刷网站排名软件wordpress文章分页标题
  • 企业网站必须备案吗网站推广策划方案范文
  • 手机制作封面教程网站小程序商城使用教程
  • 桥下网站制作哪家好wordpress 移动主题
  • 沈阳.....网站设计哈尔滨 微网站设计
  • 南京明月建设集团网站北京城乡住房建设厅网站
  • 深圳网站制作平台网站建设最好的公司哪家好
  • 云服务器如何搭建网站网站改版 升级的目的
  • 网页设计制作网站论文自己做投票网站怎么弄
  • 建企业版网站多久网络部署方案
  • h5网站要多久浙江省一建建设集团网站首页
  • vi设计案例网站郑州网站设计排行
  • 海外网站推广优化专员四川省建设厅网站填报获奖
  • 成都建站免费模板惠阳有做公司网站的吗
  • 网站内容搜索白云区建材网站建设推广
  • 网站关键词优化哪一个晋城手机网站建设
  • 协会网站建设哪里实惠网站的空间是啥
  • 互联网大赛建设网站策划书网站建设与维护教学视频教程
  • 巴中微网站建设青岛本地生活网
  • 网站建设套建筑云平台
  • 网站开发东莞自己怎么做响应式网站
  • 洛阳网站改版维护公司单产品网站模板
  • 做图模板网站商业空间设计有限公司
  • 网站配色方案网站建设费用低设计好
  • 南阳做网站优化哪家好江阴市做网站的
  • php 上传到网站短网址在线生成工具
  • 网站排名掉了怎么恢复网络知识
  • 河北地矿建设集团官方网站网站导航栏如何优化
  • 小型网络公司是干嘛的谷歌自建站和优化
  • igem网站建设wordpress修改文件上传大小