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

学校网站建设的技术方案网站的二维码怎么做的

学校网站建设的技术方案,网站的二维码怎么做的,太原零元网站建设,手机界面设计模板最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎#xff0c;今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。 Unity.Physics物理引擎的主要流程与Pipeline Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来…最近DOTS发布了正式的版本,同时基于DOTS的理念实现了一套高性能的物理引擎今天我们给大家分享和介绍一下这个物理引擎的碰撞事件处理以及核心相关概念。 Unity.Physics物理引擎的主要流程与Pipeline Unity.Physics物理引擎做仿真迭代计算的时候主要通过以下步骤来执行: step1: 从entity里面的ECS组件中获取我们当前的物体的状态数据; step2: 做粗略的broadphase计算阶段,遍历物理世界里面所有的body, 通过AABB包围计算,来快速的判断哪些物体可能相交;粗略计算把不会相交的排除掉, 不会相交的就不会改变运动状态; step3: narrowphase阶段: 把可能相交的物体做进一步的精确的计算;根据他们的物理形状计算出来准确的碰撞点与相关的碰撞信息; step4: 基于这些碰撞信息, 我们的物理引擎会计算具体的碰撞信息,关节,摩檫力阻力等计算, 结合物理的原理,计算出来我们的物理刚体的速度角速度等运动状态。 Step5: 根据基于全新的运动状态,把所有运动的物体向前迭代计算(线性速度角速度,摩擦力等),计算出这帧新的刚体的位置等信息; Step6: Unity Physic 通过 ExportPhysicsWorld System 把物理刚体的位置速度等,同步给节点Entity的LocalTransform组件与PhysicVelocity等组件,这样渲染的entity,就会跟着物理引擎的刚体同步移动; 对啦这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白也有一些正在从事游戏开发的技术大佬欢迎你来交流学习。 DOTS中基于System与SystemGroup 树行结构来决定DOTS中的迭代顺序这个是DOTS中很重要的一个概念。Unity Physics将上面步骤与逻辑基于ECS设计思想,分别设计了相关的System与System Group,结构如下: --FixedStepSimulationSystemGroup --PhysicsSystemGroup --PhysicsInitializeGroup(System Group) --PhysicsSimulationGroup(SystemGroup) --PhysicsCreateBodyPairsGroup --PhysicsCreateContactsGroup --PhysicsCreateJacobiansGroup --PhysicsSolveAndIntegrateGroup --System: ExportPhysicsWorld 所有物理引擎的迭代计算都是基于FixedStepSimulationSystemGroup,即按照固定的时间间隔来迭代物理仿真保持物理引擎的一致性与稳定性。所有的物理引擎的仿真计算都放在PysicsSystemGroup下。PysicsSystemGroup包含PhysicsInitializeGroup ,PhysicsSimulationGroup 与一个ExportPhysicsWorld System。上面提到的Step1,在PhysicsInitializeGroup阶段完成 step2~step5在PhysicsSimulationGroup中完成, PhysicsSimulationGroup完成后物理引擎的一帧的迭代计算完成最后通过ExportPhysicsWorld的System把把物理引擎的内部数据同步到Entity的PhysicsVelocity, LocalTransform等ECS组件。在PhysicsSimulationGroup又有4个subgroup,他们分别对应step2~step5的执行步骤。 Unity Physics碰撞检测事件处理 当PhysicsSimulationGroup的分组执行完成以后就完成了整个物理引擎的仿真与迭代计算。仿真过程中会产生一个PhysicsWorld,物理世界里面的所有的刚体等相关物理数据(位置速度等)都可以通过PhysicsWorld得到最后还被导出到Entity的ECS组件里面。在物理仿真中所有的事件都会被保存到Simulation对象中,这些事件包括了我们常见的碰撞事件与触发器事件。传统模式下我们是通过回调函数来处理的DOTS模式下我们是在一个System环节内统一来处理这些事件。物理引擎的碰撞与触发事件处理流程如下: Step1: 编写一个System处理逻辑来处理物理事件; Step2: 指定好System执行的时机一定要在PhysicsSimulationGroup之前或者之后这样才能拿到碰撞事件的数据; Step3: 通过编写Job来遍历当前所有发生的碰撞事件然后编写每个碰撞事件的处理逻辑; Step4: 获取存储事件的Simulation单例传递给job来进行具体执行; 碰撞事件的处理: 当所有的模拟迭代计算完成后会把过程中的所有碰撞事件对存放到Simulation对象中我们可以通过(SystemBase|SystemAPI|EntityQuery).GetSingletonSimulationSingleton().AsSimulation()获取Simulation对象。 要处理所有的碰撞事件我们先编写一个System用来编写事件处理逻辑,然后编写一个Job,继承自IcollisionEventsJob这样就可以在Job中遍历所有的碰撞事件,每个碰撞事件都调用Job的Execute函数,在它里面来处理每个碰撞事件的逻辑。代码如下: [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] [UpdateBefore(typeof(PhysicsSimulationGroup))] // We are updating before PhysicsSimulationGroup - this means that we will get the events of the previous frame public partial struct GetNumCollisionEventsSystem : ISystem {[BurstCompile]public partial struct CountNumCollisionEvents : ICollisionEventsJob{public NativeReferenceint NumCollisionEvents;public void Execute(CollisionEvent collisionEvent){NumCollisionEvents.Value;}}[BurstCompile]public void OnUpdate(ref SystemState state){NativeReferenceint numCollisionEvents new NativeReferenceint(0, Allocator.TempJob);state.Dependency new CountNumCollisionEvents{NumCollisionEvents numCollisionEvents}.Schedule(SystemAPI.GetSingletonSimulationSingleton());// ...} } 触发器事件TriggerEvent处理: 触发器事件与碰撞事件类似我们只要编写一个ItriggerEventsJob就可以遍历当前所有的触发器事件了代码如下: [UpdateInGroup(typeof(FixedStepSimulationSystemGroup))] [UpdateAfter(typeof(PhysicsSimulationGroup))] // We are updating after PhysicsSimulationGroup - this means that we will get the events of the current frame. public partial struct GetNumTriggerEventsSystem : ISystem {[BurstCompile]public partial struct CountNumTriggerEvents : ITriggerEventsJob{public NativeReferenceint NumTriggerEvents;public void Execute(TriggerEvent collisionEvent){NumTriggerEvents.Value;}}[BurstCompile]public void OnUpdate(ref SystemState state){NativeReferenceint numTriggerEvents new NativeReferenceint(0, Allocator.TempJob);state.Dependency new CountNumTriggerEvents{NumTriggerEvents numTriggerEvents}.Schedule(SystemAPI.GetSingletonSimulationSingleton());// ...} } 今天的分享就到这里需要本篇文章完整的项目工具与源码的同学可以关注我们 视频教程如下 UnityDOTS专区​www.bycwedu.com/promotion_channels/1830504531​编辑
http://www.hkea.cn/news/14534592/

相关文章:

  • 网站整站优化网站建设的新发展
  • windows wordpress mi搜索引擎优化网站排名
  • 建设部工程业绩网站无极电影网怎样下载电影
  • 公司邮箱手机怎么登录南京做网站优化多少钱
  • 海口的网站建设住建厅特种作业证查询
  • 微信小程序一站式开发网络搭建的相关知识
  • 乐达淄博网站建设制作国外电子商务网站
  • 怎么让学生在网站上做问卷调查网址域名解析
  • 做网站用虚拟主机还是用服务器陕西手机网站建设公司
  • 网站建设捌金手指花总二七国外免费网站建设
  • 网站制作 南通网站制作怎么学去哪学
  • 营销型网站文案怎么做刚刚廊坊发生大事了
  • 无锡公司做网站个体户可以做网站么
  • 建设公司建站系统什么是全网整合营销
  • wordpress游戏网站模板长沙模板建站平台
  • 做招聘网站用哪个cms万网网站编辑
  • 做游戏网站有钱赚吗平面设计的软件都有什么
  • 陕西有限公司网站建设招标公告wordpress镜像搭建
  • 系统下载 网站 源码怎么给自己喜欢的人做网站
  • 手机模块网站安徽建新建设工程有限公司网站
  • 温州网站优化排名广州网站建设需要多少费用
  • 用别人的公司名字做网站苏州搜狗关键词优化
  • 微网站建设开发工具开发公司土建工程师绩效考核
  • 农产品网站设计乐昌市建设网站
  • 环保行业网站开发液压电机东莞网站建设
  • 国外做汽配的网站自己网站让百度收录怎么搜索会展示
  • 网站按域名跳转不同的页面wordpress轮播代码
  • 建设部网站业绩补录南京seo招聘
  • 网站 横幅文本文档做网站
  • 傻瓜网站开发工具专业团队图片高清