コード例 #1
0
        public override IEnumerator Action(ActorProxy actorProxy, ActorProxy targetActorProxy)
        {
            var rocket         = actorProxy.baseEntity as Rocket;
            var actorTransform = actorProxy.transform;
            var target         = targetActorProxy.baseEntity;

            var startPos = actorTransform.position;
            var endPos   = targetActorProxy.baseEntity.ts_HitPos.position;
            var distance = Vector3.Distance(startPos, endPos);
            var moveTime = distance / actorProxy.baseEntity.moveSpeed;

            actorProxy.transform.LookAt(targetActorProxy.transform);

            float t = 0;

            while (t < moveTime)
            {
                if (target != null && target.isAlive)
                {
                    endPos = target.ts_HitPos.position;
                }

                actorTransform.position = Vector3.Lerp(startPos, endPos, t / moveTime);

                t += Time.deltaTime;
                yield return(null);
            }

            if (actorProxy.isPlayingAI)
            {
                targetActorProxy.HitDamage(actorProxy.power);
            }

            rocket.Bomb();
        }