Example #1
0
    public virtual void Update()
    {
        if (alive)
        {
            if (playerFound)
            {
                Quaternion targetRotation = Quaternion.LookRotation(playerTransform.position - transform.position);
                transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);
                transform.Translate(new Vector3(0, 0, movementSpeed * Time.deltaTime));
            }
            else
            {
                WanderAimlessly();
                if (nextDetection <= Time.time)
                {
                    DetectAspect();
                    nextDetection = Time.time + detectionInterval;
                }
            }


            if (nextWalkingSound <= Time.time)
            {
                soundSource.PlayOneShot(soundLibrary.GetRandomWalkSound());
                nextWalkingSound = Time.time + Random.Range(timeBetweenGruntMin, timeBetweenGruntMax);
            }
        }
    }