예제 #1
0
    public override JobHandle StartUpdateJob()
    {
        SetUpNativeArrays();
        ZoneController zoneController = earth.GetZoneController();

        job = AnimalUpdateJob.BeginJob(animalActions, updateAnimals, animalSpecies.GetActiveAnimalsCount(), animalSpecies.fullFood, animalSpecies.maxFood, animalSpecies.GetSightRange(), animalSpecies.GetEyeType(),
                                       animalSpecies.GetEatRange(), animalSpecies.GetSmellRange(), animalSpecies.GetFoodIndex(), animalSpecies.eddibleFoodTypes,
                                       animalSpecies.predatorFoodTypes, zoneController.allAnimals, zoneController.allPlants,
                                       zoneController.zones, zoneController.neiboringZones, zoneController.animalsInZones, zoneController.plantsInZones,
                                       zoneController.organismsByFoodTypeInZones);
        return(job);
    }
예제 #2
0
    public static JobHandle BeginJob(NativeArray <AnimalScript.AnimalActions> animalActions, NativeArray <int> updateAnimals,
                                     int animalCount, float speciesFullFood, float speciesMaxFood, float speciesSightRange, EyesScript.EyeTypes speciesEyeType, float speciesEatRange, float speciesSmellRange,
                                     int speciesFoodType, NativeArray <int> eddibleFoodTypes, NativeArray <int> predatorFoodTypes,
                                     NativeArray <AnimalScript.AnimalData> allAnimals, NativeArray <PlantScript.PlantData> allPlants,
                                     NativeArray <ZoneController.ZoneData> zones, NativeMultiHashMap <int, int> neiboringZones, NativeMultiHashMap <int, int> animalsInZones,
                                     NativeMultiHashMap <int, int> plantsInZones, NativeMultiHashMap <int2, ZoneController.DataLocation> organismsByFoodTypeInZones)
    {
        AnimalUpdateJob job = new AnimalUpdateJob()
        {
            animalActions     = animalActions, updateAnimals = updateAnimals, speciesFullFood = speciesFullFood, speciesMaxFood = speciesMaxFood,
            speciesSightRange = speciesSightRange, speciesEyeType = speciesEyeType, speciesEatRange = speciesEatRange, speciesSmellRange = speciesSmellRange,
            speciesFoodType   = speciesFoodType, eddibleFoodTypes = eddibleFoodTypes, predatorFoodTypes = predatorFoodTypes,
            allAnimals        = allAnimals, allPlants = allPlants, zones = zones, neiboringZones = neiboringZones, animalsInZones = animalsInZones,
            plantsInZones     = plantsInZones, organismsByFoodTypeInZones = organismsByFoodTypeInZones
        };

        return(IJobParallelForExtensions.Schedule(job, animalCount, 1));
    }