public override void Init(ShootData shootData, AbstractProjectileData projectileData) { SimpleProjectileData downCastedProjectileData = projectileData as SimpleProjectileData; InitTransform(shootData); speed = downCastedProjectileData.Speed; IsActive = true; }
/// <summary> /// Cast projectile /// </summary> /// <param name="position">Position</param> /// <param name="direction">Direction</param> /// <param name="data">Data</param> public void Cast(ShootData shootData, AbstractProjectileData projectileData) { AbstractProjectile projectile = projectilePool.GetProjectile(projectileData); if (projectile == false) { Debug.LogError("projectile == null"); return; } projectile.Init(shootData, projectileData); }
public override void Init(ShootData shootData, AbstractProjectileData projectileData) { RigidbodyProjectileData downCastedProjectileData = projectileData as RigidbodyProjectileData; InitTransform(shootData); startForce = downCastedProjectileData.StartForce; previousPosition = transform.position; IsActive = true; body.velocity = Vector3.zero; body.angularVelocity = Vector3.zero; body.AddForce(transform.forward * startForce, ForceMode.Impulse); }
protected virtual void InitTransform(ShootData shootData) { transform.position = shootData.position; transform.rotation = shootData.rotation; }
/// <summary> /// Init projectile /// </summary> /// <param name="position">Position</param> /// <param name="direction">Direction</param> /// <param name="data">Data</param> public virtual void Init(ShootData shootData, AbstractProjectileData projectileData) { InitTransform(shootData); }
private void Awake() { shootData = new ShootData(); }