//[ReadOnly] public EntityTypeHandle _entityHandle; public void Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { NativeArray <MoveStats> _moveStatsArray = chunk.GetNativeArray(_moveStatsHandle); NativeArray <DamageCount> _damageCountArray = chunk.GetNativeArray(_damageCountHandle); NativeArray <SouffleDeFeuTemp> _souffleTempArrayo = _souffleTempArray; for (int i = 0; i < chunk.Count; i++) { for (int j = 0; j < _souffleTempArrayo.Length; j++) { float _dist = Vector3.Distance(_moveStatsArray[i]._position, _souffleTempArrayo[j]._position); if (_dist < _souffleTempArrayo[j]._radius) { DamageCount _damageCountTemp = _damageCountArray[j]; _damageCountTemp._damageFireCount += _souffleTempArrayo[j]._damage; _damageCountArray[j] = _damageCountTemp; } } } }
void IJobChunk.Execute(ArchetypeChunk chunk, int chunkIndex, int firstEntityIndex) { NativeArray <DamageCount> _damageCount = chunk.GetNativeArray(_damageCountHandle); NativeArray <HealthPoint> _healthPoint = chunk.GetNativeArray(_healthPointHandle); NativeArray <Entity> _entity = chunk.GetNativeArray(_EntityHandle); for (int i = 0; i < _damageCount.Length; i++) { _healthPoint[i] = new HealthPoint() { _healthPoint = _healthPoint[i]._healthPoint + _damageCount[i]._heal - _damageCount[i]._damageExplosionCount - _damageCount[i]._damageFireCount }; _damageCount[i] = new DamageCount(); if (_healthPoint[i]._healthPoint <= 0) { _ecb.DestroyEntity(chunkIndex, _entity[i]); } } }