/// <summary> /// create a job for transform position all enimies with speed /// </summary> private void JobWorkToTransform() { NativeArray <float> speedArr = new NativeArray <float>(enemies.Count, Allocator.TempJob); TransformAccessArray transformAccessArray = new TransformAccessArray(enemies.Count); for (int i = 0; i < enemies.Count; i++) { speedArr[i] = enemies[i].speed; transformAccessArray.Add(enemies[i].transform); } UpdateTransform job = new UpdateTransform { deltaTime = Time.deltaTime, speedArray = speedArr, targetX = _targetX, }; JobHandle jobHandle = job.Schedule(transformAccessArray); jobHandle.Complete(); speedArr.Dispose(); transformAccessArray.Dispose(); }
private void Awake() { if (Instance == null) { Instance = this; } else if (Instance != this) { Destroy(gameObject); } }
private void _UpdateTransform() { Matrix newMatrix = Matrix.Identity; newMatrix.Scale(_Scale, _Scale); newMatrix.Translate(-_StartX, -_StartY); Matrix = newMatrix; UpdateTransform?.Invoke(); }