public void Initialize(PooledObjectInitializationData initializationData) { BulletInitializationData initData = initializationData as BulletInitializationData; if (initData == null) { return; } _power = initData.Power; _totalLifeTime = initData.TotalLifeTime; transform.position = initData.Position; transform.up = initData.Velocity.normalized; _initialVelocity = initData.Velocity; _owner = initData.Owner; _ownerDamageable = initData.Owner.GetComponent <IDamageable>(); }
protected virtual void FireShot(Unit unit, Bullet bullet) { // calculate direction to fire and add force Vector2 velocity = unit.MoveController.Front.up * _bulletSpeed; BulletInitializationData initData = new BulletInitializationData() { Power = _power, TotalLifeTime = _bulletLifeTime, Position = unit.MoveController.Front.position, Velocity = velocity, Owner = unit }; bullet.Initialize(initData); bullet.Spawn(); GenerateSoundBox(unit); }