Пример #1
0
    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);
    }
Пример #2
0
 void Start()
 {
     vars    = GameObject.FindObjectOfType <SpawnVariables>();
     manager = World.Active.GetOrCreateManager <EntityManager>();
     AddObjects(vars.objectCount);
 }
Пример #3
0
 protected void Start()
 {
     vars = GameObject.FindObjectOfType <SpawnVariables>();
     AddObjects(vars.objectCount);
 }