示例#1
0
        public void Act(EnemyAI ai)
        {
            var dir = ai.GetTargetVector();

            dir.y = 0;
            var o = dir.normalized;

            if (stage == ThrowStage.Preparing)
            {
                ai.transform.rotation = Quaternion.LookRotation(-o, Vector3.up);
            }
        }
示例#2
0
        private Vector3 velocity; // antonio

        public void Init(EnemyAI ai)
        {
            ai.enemyAnimation.SetState(EnemyAnimation.State.hit);

            direction   = ai.GetTargetVector();
            direction.y = 0;
            direction.Normalize();

            velocity = direction * 10; // antonio

            ai.navAgent.isStopped = true;
            ai.Hit();

            Debug.Log("HitState :: Init");
        }
示例#3
0
        public void SpawnBall(EnemyAI ai)
        {
            stage = ThrowStage.Throwing;

            Vector3 ballPos = ai.transform.Find("ball").transform.position; // Timo

            var ob = UnityEngine.Object
                     .Instantiate(ai.throwingBall, ballPos, ai.transform.rotation)
                     .GetComponent <AIBall>();

            var vec = ai.GetTargetVector();

            ob.SetValues(ballPos, -vec, ai.GetTargetDistance(), -vec.y);

            ai.CurrentState = new IdleState();
        }
示例#4
0
        public void Init(EnemyAI ai)
        {
            ai.enemyAnimation.SetState(EnemyAnimation.State.walking);

            direction   = ai.GetTargetVector();
            direction.y = 0;
            direction.Normalize();

            Vector3 randomDirection = Random.insideUnitSphere * ai.walkDistance;

            randomDirection += ai.transform.position;

            NavMeshHit hit;

            NavMesh.SamplePosition(randomDirection, out hit, ai.walkDistance, 1);
            Vector3 finalPosition = hit.position;

            ai.navAgent.destination = finalPosition;
            ai.navAgent.isStopped   = false;

            Debug.Log("MoveState :: Init");
        }