void Start() { vars = GameObject.FindObjectOfType <SpawnVariables>(); transforms = new Transform[vars.objectCount]; int amount = vars.objectCount; movementSpeedArray = new NativeArray <float>(amount, Allocator.Persistent); MovementSpeedCreationJob movementJob = new MovementSpeedCreationJob() { speeds = movementSpeedArray, movementSpeed = vars.movementSpeed, }; // 64: Higher values work best when there's less work in the job to do JobHandle movementJobHandle = movementJob.Schedule(amount, 64); movementJobHandle.Complete(); offsetArray = new NativeArray <float>(amount, Allocator.Persistent); OffsetCreationJob offsetJob = new OffsetCreationJob() { offset = offsetArray, }; // 64: Higher values work best when there's less work in the job to do JobHandle offsetJobHandle = offsetJob.Schedule(amount, 64); offsetJobHandle.Complete(); for (int i = 0; i < amount; i++) { Vector2 pos = Random.insideUnitCircle; float y = offsetArray[i] * vars.bounceHeight * vars.bounceSpeed; Vector3 startingPosition = new Vector3(pos.x, y, pos.y) * vars.placementRadius; GameObject obj = Instantiate <GameObject>(spawnPrefab, startingPosition, Quaternion.identity); transforms[i] = obj.transform; } transformsAccessArray = new TransformAccessArray(transforms); }
void Start() { vars = GameObject.FindObjectOfType <SpawnVariables>(); manager = World.Active.GetOrCreateManager <EntityManager>(); AddObjects(vars.objectCount); }
protected void Start() { vars = GameObject.FindObjectOfType <SpawnVariables>(); AddObjects(vars.objectCount); }