Esempio n. 1
0
        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);
        }
Esempio n. 2
0
    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);
        }