Движение монстра

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class fff : MonoBehaviour {
    // скорость движения персонажа
    private float speed = 5.1f;

    void Start () {
        // пусто
    }

    void Update () {
        // двигаем персонажа вперёд
        transform.Translate(0, 0, speed * Time.deltaTime);
        // пускаем луч в направлении движения персонажа
        Ray ray = new Ray(transform.position, transform.forward);
        RaycastHit hit;
        // если луч определённой толщины нашёл препятствие
        if(Physics.SphereCast(ray, 0.65f, out hit))
        {
            // если расстояние до препятствия меньше 2-х метров
            if ((hit.distance < 2))
            {
                // генерируем случайный угол поворота
                float angle = Random.Range(-360, 360);
                // поворачиваем персонажа
                transform.Rotate(0, angle, 0);
            }
        }
    }
}

Last updated