Beispiel #1
0
    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;
    }