protected override JobHandle OnUpdate(JobHandle inputDeps) { var settings = AsteroidsBootstrap.Settings; if (settings == null) { return(inputDeps); } var EnemiesVsPlayers = new ShotCollisionJob { CollisionRadiusSquared = settings.playerCollisionRadius * settings.playerCollisionRadius, health = m_Players.Health, Positions = m_Players.Position, Shots = m_EnemyShots.Shot, ShotPositions = m_EnemyShots.Position }.Schedule(m_Players.Length, 1, inputDeps); var playersVsEnemies = new ShotCollisionJob { CollisionRadiusSquared = settings.enemyCollisionRadius * settings.enemyCollisionRadius, health = m_Enemies.Health, Positions = m_Enemies.Position, Shots = m_PlayerShots.Shot, ShotPositions = m_PlayerShots.Position }.Schedule(m_Enemies.Length, 1, EnemiesVsPlayers); return(playersVsEnemies); }
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); }