voidStart() { cubesList = new List<Transform>(); for (var z = -zHalfCount; z <= zHalfCount; z++) { for (var x = -xHalfCount; x <= xHalfCount; x++) { var cube = Instantiate(cubeAchetype); cube.transform.position = new Vector3(x * 1.1f, 0, z * 1.1f); cubesList.Add(cube.transform); } } }
// Update is called once per frame voidUpdate() { using (profilerMarker.Auto(cubesList.Count)) { for (var i = 0; i < cubesList.Count; i++) { var distance = Vector3.Distance(cubesList[i].position, Vector3.zero); cubesList[i].localPosition += Vector3.up * Mathf.Sin(Time.time * 3f + distance * 0.2f); } } }
voidStart() { transformAccessArray = new TransformAccessArray(4 * xHalfCount * zHalfCount); for (var z = -zHalfCount; z < zHalfCount; z++) { for (var x = -xHalfCount; x < xHalfCount; x++) { var cube = Instantiate(cubeAchetype); cube.transform.position = new Vector3(x * 1.1f, 0, z * 1.1f); transformAccessArray.Add(cube.transform); } } }
voidUpdate() { Debug.Log($"TransformAccessArray length: {transformAccessArray.length}"); using (profilerMarker.Auto(transformAccessArray.length)) { var waveCubesJob = new WaveCubesJob { elapsedTime = Time.time, }; JobHandle waveCubesJobhandle = waveCubesJob.Schedule(transformAccessArray);