Hello,
I'm new to DOTS and wanted to experiment with a simple trigger ESC that would increment a number on a component when 1 entity that holds the component is triggered by another component of a different type.
[BurstCompile]
public struct TestTriggerJob : ITriggerEventsJob
{
[ReadOnly] public ComponentLookup<TriggerableComponent> Triggerable;
[ReadOnly] public ComponentLookup<TargetComponent> Targets;
public EntityCommandBuffer ECB;
[BurstCompile]
public void Execute(TriggerEvent triggerEvent)
{
Entity Triggerable = Entity.Null;
Entity Target = Entity.Null;
if(TriggerableComponent.HasComponent(triggerEvent.EntityA)) Triggerable = triggerEvent.EntityA;
if(TriggerableComponent.HasComponent(triggerEvent.EntityB)) Triggerable = triggerEvent.EntityB;
if(TargetComponent.HasComponent(triggerEvent.EntityA)) Target = triggerEvent.EntityA;
if(TargetComponent.HasComponent(triggerEvent.EntityB)) Target = triggerEvent.EntityB;
if(Triggerable == Entity.Null || Target == Entity.Null) return;
Debug.Log("Triggered");
TriggerableComponent triggerable = Triggerable[Triggerable];
TargetComponent targetComponent = Targets[Target];
targetComponent.Value += triggerable.Value;
Targets[Target] = targetComponent;
ECB.DestroyEntity(Triggerable);
}
}
Is there anything I could be missing that is obvious to someone who has been working with this API for longer than I have?