我对使用Unity中的ECS
和Job System
还是陌生的,所以也许我误解了这里的核心概念。我尝试浏览文档,但找不到答案(也许是因为它仍在预览中)。无论如何,我希望能够将某些具有相同组件的实体排除在工作系统之外。
例如:
您有工作:
// simplified
Entities.ForEach((ref Acceleration acceleration, ref Velocity velocity, ref Translation translation) =>
{
var deltaTime = Time.deltaTime;
acceleration.value = gravityMass * math.lengthsq(math.distance(translation.Value, float3.zero));
velocity.value += acceleration.value * deltaTime;
translation.Value += velocity.value * -math.normalize(translation.Value) * deltaTime;
});`
您有两个实体,都包含Acceleration
,Velocity
和Translation
组件。您的一个实体是一块太空石,另一个是子弹。您如何使以上系统仅影响太空岩石?
我唯一想到的就是为相同类型的数据(即BulletVelocity
和RockVelocity
)创建不同的命名组件,但这感觉不像是一种正确的处理方式
答案 0 :(得分:0)
I decided to make two different components, one called Gravity
and another called Acceleration
.
Edit: In other cases it may be better to use tag components