protected override void OnCreate() { m_ExportPhysicsWorld = World.GetOrCreateSystem <ExportPhysicsWorld>(); m_TriggerSystem = World.GetOrCreateSystem <TriggerEventConversionSystem>(); m_EndFramePhysicsSystem = World.GetOrCreateSystem <EndFramePhysicsSystem>(); m_HierarchyChildMask = EntityManager.GetEntityQueryMask( GetEntityQuery(new EntityQueryDesc { All = new ComponentType[] { typeof(Parent), typeof(LocalToWorld) } }) ); m_NonTriggerDynamicBodyMask = EntityManager.GetEntityQueryMask( GetEntityQuery(new EntityQueryDesc { All = new ComponentType[] { typeof(Translation), typeof(Rotation), typeof(PhysicsVelocity) }, None = new ComponentType[] { typeof(StatefulTriggerEvent) } }) ); }
private void UpdateTriggerEvents(NativeList <StatefulTriggerEvent> triggerEvents, DynamicBuffer <StatefulTriggerEvent> triggerEventBuffer) { triggerEvents.Sort(); var previousFrameTriggerEvents = new NativeList <StatefulTriggerEvent>(triggerEventBuffer.Length, Allocator.Temp); for (int i = 0; i < triggerEventBuffer.Length; i++) { var triggerEvent = triggerEventBuffer[i]; if (triggerEvent.State != EventOverlapState.Exit) { previousFrameTriggerEvents.Add(triggerEvent); } } var eventsWithState = new NativeList <StatefulTriggerEvent>(triggerEvents.Length, Allocator.Temp); TriggerEventConversionSystem.UpdateTriggerEventState(previousFrameTriggerEvents, triggerEvents, eventsWithState); triggerEventBuffer.Clear(); for (int i = 0; i < eventsWithState.Length; i++) { triggerEventBuffer.Add(eventsWithState[i]); } }
protected override void OnCreate() { m_CommandBufferSystem = World.GetOrCreateSystem <EndFixedStepSimulationEntityCommandBufferSystem>(); m_TriggerSystem = World.GetOrCreateSystem <TriggerEventConversionSystem>(); m_NonTriggerMask = EntityManager.GetEntityQueryMask( GetEntityQuery(new EntityQueryDesc { None = new ComponentType[] { typeof(StatefulTriggerEvent) } }) ); }
protected override void OnCreate() { m_TriggerSystem = World.GetOrCreateSystem <TriggerEventConversionSystem>(); m_NonTriggerMask = EntityManager.GetEntityQueryMask( GetEntityQuery(new EntityQueryDesc { None = new ComponentType[] { typeof(StatefulTriggerEvent) } }) ); RequireForUpdate(GetEntityQuery(new EntityQueryDesc { All = new ComponentType[] { typeof(TriggerVolumeChangeMaterial) } })); }
protected override void OnCreate() { m_CommandBufferSystem = World.GetOrCreateSystem <EndSimulationEntityCommandBufferSystem>(); m_TriggerSystem = World.GetOrCreateSystem <TriggerEventConversionSystem>(); m_NonTriggerMask = EntityManager.GetEntityQueryMask( GetEntityQuery(new EntityQueryDesc { None = new ComponentType[] { typeof(StatefulTriggerEvent) } }) ); //We set our queries m_PlayerScores = GetEntityQuery(ComponentType.ReadWrite <PlayerScoreComponent>()); m_HighestScore = GetEntityQuery(ComponentType.ReadWrite <HighestScoreComponent>()); //We wait to update until we have our converted entities RequireForUpdate(m_PlayerScores); RequireForUpdate(m_HighestScore); }