Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Unity.Entities;
- using Unity.Physics.Systems;
- using Unity.Collections;
- using Unity.Jobs;
- using Unity.Burst;
- using Unity.Physics;
- [UpdateAfter(typeof(StepPhysicsWorld)), UpdateBefore(typeof(EndFramePhysicsSystem))]
- public class AttackCollisionSystem : JobComponentSystem
- {
- private EndSimulationEntityCommandBufferSystem endSimBuffer;
- private BuildPhysicsWorld physicsWorld;
- private StepPhysicsWorld stepPhysicsWorld;
- protected override void OnCreate()
- {
- physicsWorld = World.GetOrCreateSystem<BuildPhysicsWorld>();
- stepPhysicsWorld = World.GetOrCreateSystem<StepPhysicsWorld>();
- endSimBuffer = World.GetOrCreateSystem<EndSimulationEntityCommandBufferSystem>();
- base.OnCreate();
- }
- protected override JobHandle OnUpdate(JobHandle inputDeps)
- {
- JobHandle jh = new ScanForImpact
- {
- ecb = endSimBuffer.CreateCommandBuffer().ToConcurrent(),
- }.Schedule(stepPhysicsWorld.Simulation, ref physicsWorld.PhysicsWorld, inputDeps);
- endSimBuffer.AddJobHandleForProducer(jh);
- return jh;
- }
- private struct ScanForImpact : ICollisionEventsJob
- {
- public EntityCommandBuffer.Concurrent ecb;
- public void Execute(CollisionEvent collisionEvent)
- {
- Debug.Log("collision!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement