Example #1
0
    // Update is called once per frame
    void Update()
    {
        if (!isAttacking)
        {
            if (Proximity.CheckFacing(transform.Find("ZombieLookPosition").gameObject, player, attackRange))
            {
                StartCoroutine("DoAttack");
            }
            else
            {
                if ((player != null) && (!recentlySpawned))
                {
                    //turn towards the player
                    Vector3    relativePos = player.transform.position - transform.position;
                    Quaternion lookDir     = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(relativePos, Vector3.up), Time.deltaTime / turnScaleFactor);
                    transform.rotation = lookDir;
                    //Move towards the player
                    myBody.velocity = transform.forward * speed;
                }
            }
        }

        myBody.velocity += (Physics.gravity / References.entityGravMod);
    }