public void OpenFire(Vector3 targetPosition) { if (!canFire) { return; } GameObject objBullet = Instantiate(gameObject, bulletModel, tf_FirePosition.position); ShipBulletCpt shipBullet = objBullet.GetComponent <ShipBulletCpt>(); shipBullet.SetData(shipData.characterType, shipData.bulletDamage); //子弹高度 float bulletHight = handler_GameData.GetBulletHight(); float bulletSpeed = handler_GameData.GetBulletSpeed(); shipBullet.MoveParabola(targetPosition, bulletHight, bulletSpeed); //玩家打炮倒计时 if (shipData.characterType == CharacterTypeEnum.Player) { StartCoroutine(CoroutineForFireCD(shipData.intervalForFire)); } //大炮粒子 handler_Effect.PlayEffect(EffectInfo.SHIP_FIRE, tf_FirePosition.position, 1.4f); //打炮动画 shipAnim.SetShipFire(() => { shipAnim.SetShipIdle(); }); }