protected override JobHandle OnUpdate(JobHandle inputDeps) { var jobHandle = new PlayerCollisionJob { PlayerGroup = GetComponentDataFromEntity <PlayerData>(), PieceGroup = GetComponentDataFromEntity <PieceData>(), ObstacleGroup = GetComponentDataFromEntity <ObstacleData>(), }.Schedule(m_stepPhysicsWorld.Simulation, ref m_buildPhysicsWorld.PhysicsWorld, inputDeps); jobHandle.Complete(); return(inputDeps); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var task = new PlayerCollisionJob { playerGroup = GetComponentDataFromEntity <PlayerTagComponent>(true), PhysicsVelocityGroup = GetComponentDataFromEntity <PhysicsVelocity>(), }; var handle = task.Schedule(stepworld.Simulation, ref buildworld.PhysicsWorld, inputDeps); return(handle); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var settings = AsteroidsArcadeBootstrap.Settings; if (settings == null) { return(inputDeps); } EnemiesSelfCollisions enemiesVsEnemies = new EnemiesSelfCollisions { Positions = m_Enemies.Position, Health = m_Enemies.Health, CollisionRadiusSquared = settings.enemyCollisionRadius * settings.enemyCollisionRadius }; JobHandle enemiesVsEnemiesHandle = enemiesVsEnemies.Schedule(m_Enemies.Length, 2, inputDeps); ShotCollisionJob playersVsEnemies = new ShotCollisionJob { ShotPositions = m_PlayerShots.Position, Shots = m_PlayerShots.Shot, CollisionRadiusSquared = settings.enemyCollisionRadius * settings.enemyCollisionRadius, Subdiv = m_Enemies.Subdiv, Health = m_Enemies.Health, Positions = m_Enemies.Position, Score = m_Players.Score, bigScore = settings.enemyBigAsteroidPoints, mediumScore = settings.enemyMediumAsteroidPoints, smallScore = settings.enemySmallAsteroidPoints }; JobHandle playersVsEnemiesHandle = playersVsEnemies.Schedule(m_Enemies.Length, 1, enemiesVsEnemiesHandle); playersVsEnemiesHandle.Complete(); JobHandle enemiesVsPlayer = new PlayerCollisionJob { CollisionRadiusSquared = settings.playerCollisionRadius * settings.playerCollisionRadius, Positions = m_Players.Position, Health = m_Players.Health, Enemies = m_Enemies.Position, Invulnerable = m_Players.Invulnerable, Cooldown = settings.playerInvulnerableCooldown }.Schedule(m_Players.Length, 1, playersVsEnemiesHandle); return(enemiesVsPlayer); }