Example #1
0
    void FixedUpdate()
    {
        if (player)
        {
            Vector3 distance = player.position - this.transform.position;
            if (distance.magnitude < agressionDistance)
            {
                direction = player.position - this.transform.position;
                lookAtTarget(direction);

                patrolCycle.SetBool("Idle", false);
                if (direction.magnitude > 2.5)
                {
                    enemyRigidBody.AddForce(transform.forward * enemyMovementSpeed);
                    patrolCycle.SetBool("Attacking", false);
                    patrolCycle.SetBool("Chasing", true);
                }
                else
                {
                    patrolCycle.SetBool("Attacking", true);
                    goblin.PerformAttack();
                    patrolCycle.SetBool("Chasing", false);
                }
            }
            else
            {
                patrolCycle.SetBool("Idle", true);
                patrolCycle.SetBool("Attacking", false);
                patrolCycle.SetBool("Chasing", false);
                enemyRigidBody.angularVelocity = new Vector3(0f, 0f, 0f);
            }
        }
    }
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Character!");
            var g = new Goblin();

            g.PerformAttack();
            g.PerformDefence();
            Console.ReadKey();
        }