protected virtual void GenerateSoundBox(Unit unit) { PooledObject weaponSoundBoxPO; if (!PooledObjectManager.Instance.UsePooledObject(WeaponSoundBoxId, out weaponSoundBoxPO)) { CustomLogger.Error(this.name, $"Could not retrieve weapon sound box pooled object with id: {WeaponSoundBoxId}"); return; } WeaponSoundBox soundBox = weaponSoundBoxPO as WeaponSoundBox; if (soundBox == null) { CustomLogger.Error(this.name, $"Object {weaponSoundBoxPO} was not of type {nameof(WeaponSoundBox)}"); return; } WeaponSoundBoxInitializationData initData = new WeaponSoundBoxInitializationData() { TargetSize = _soundBoxSize, StartPosition = unit.MoveController.Front.position, Source = unit }; soundBox.Initialize(initData); soundBox.Spawn(); }
public void Initialize(PooledObjectInitializationData initializationData) { WeaponSoundBoxInitializationData initData = initializationData as WeaponSoundBoxInitializationData; if (initData == null) { return; } _targetSize = initData.TargetSize; _startPosition = initData.StartPosition; _source = initData.Source; }