public void FireArrow() { if (target != null) { if (ActorProxy.isPlayingAI) { ActorProxy.FireCannonBallWithRelay(E_CannonType.BOMBER, target.transform.position); } } }
public override IEnumerator Action(ActorProxy actorProxy, ActorProxy targetActorProxy) { var actorTransform = actorProxy.transform; var mortar = actorProxy.baseEntity as Mortar; float t = 0f; Quaternion q = mortar.ts_Head.rotation; var targetTransform = targetActorProxy.transform; while (t < 0.5f) { if (targetActorProxy == null || targetActorProxy.baseEntity == null || targetActorProxy.baseEntity.CanBeTarget() == false) { yield break; } t += Time.deltaTime; mortar.ts_Head.rotation = Quaternion.Lerp(q, Quaternion.LookRotation((targetTransform.position - actorTransform.position).normalized), t / 0.5f); yield return(null); } for (int i = 0; i < mortar.arrAnimator.Length; ++i) { mortar.arrAnimator[i].SetTrigger(AnimationHash.Shoot); } if (mortar.ps_Fire != null) { mortar.ps_Fire.Play(); } mortar.FireLightOn(); if (actorProxy.isPlayingAI) { actorProxy.FireCannonBallWithRelay(E_CannonType.DEFAULT, targetActorProxy.transform.position); } yield return(new WaitForSeconds(0.15f)); mortar.FireLightOff(); }