Bli*_*ung 4 unity-game-engine physics-engine unity-dots
我开始寻找使用 DOTS(面向数据的技术堆栈)方法来制作对象的方法。
到处都有几个示例,Youtube 视频以及直接来自 Unity 的示例,例如 github 存储库“EntityComponentSystemSamples”。
在所有这些中,我偶然发现了“OnUpdate”,但从未发现“OnFixedUpdate”。
通常,Unity 游戏对象会同时拥有这两种对象,一种用于每次图形帧更新 ( OnUpdate
),另一种用于每次物理运动更新 ( OnFixedUpdate
)。
当尝试创建使用 Rigidbody.AddForce() 的行为时,使用 FixUpdate() 始终很重要。
这个概念在 DOTS 中被删除了吗?如何在 DOTS 中向PhysicsBody 添加脚本化的变化力?
目前,我正在将我的添加force*deltatime
到Unity.Physics.PhysicsVelocity
更新中。
And*_*sik 10
每个系统只能属于一个系统组。您可以使用属性来指定它。
属性[UpdateInGroup(typeof(SimulationSystemGroup))]
使你OnUpdate
被称为一般游戏/模拟更新。这是系统的默认组。
属性[UpdateInGroup(typeof(FixedStepSimulationSystemGroup))]
使您OnUpdate
以固定的模拟间隔被调用(即:FixedUpdate)。
注意:此^更正取自@thelebaron 答案。请给他投一票。
属性[UpdateInGroup(typeof(PresentationSystemGroup))]
使你OnUpdate
在渲染上下文中被调用;在绘制框架之前(即:更新)
[UpdateInGroup( typeof(SimulationSystemGroup) )]
public class SomeKindOfSimulationSystem : SystemBase
{
protected override void OnUpdate ()
{
/* simulation update */
}
}
Run Code Online (Sandbox Code Playgroud)
[UpdateInGroup( typeof(PresentationSystemGroup) )]
public class SomeKindOfRenderingSystem : SystemBase
{
protected override void OnUpdate ()
{
/* rendering update */
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
由于代表,我无法添加评论,但为了跟进 Andrew Lukasik 的答案,现在有一个 FixStepSimulationSystemGroup,您可以在其中更新系统(并且是物理系统在其中更新的地方)。
归档时间: |
|
查看次数: |
4213 次 |
最近记录: |