Unity丨自动巡航丨自动寻路丨NPC丨

文章目录

    • 概要
    • 功能展示
    • 技术细节
    • 小结

概要

提示:这里可以添加技术概要

本文功能是制作一个简单的自动巡逻的NPC,随机自动寻路。

功能展示

技术细节

using UnityEngine;

public class NPCController : MonoBehaviour
{
    public float moveSpeed = 5.0f; // NPC移动速度
    public float rotationSpeed = 120.0f; // NPC旋转速度
    public float raycastDistance = 2.0f; // 射线检测距离

    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
        // NPC前进
        Vector3 forward = transform.TransformDirection(Vector3.forward);
        rb.velocity = forward * moveSpeed;

        // 射线检测前方是否有障碍物
        if (Physics.Raycast(transform.position, transform.forward, raycastDistance))
        {
            // 随机旋转方向
            float randomRotation = Random.Range(0, 4) * 90; // 随机旋转角度(0、90、180、270度)
            transform.eulerAngles = new Vector3(0, randomRotation, 0);
        }
    }
}

注意代码要挂载在NPC身上,并且确定要挂载Rigidbody 组件 可以把组件的旋转X和z关掉就只有前后和左右旋转了。
Unity丨自动巡航丨自动寻路丨NPC丨_第1张图片

小结

后期功能可以自己扩展,功能简单但是实用。

你可能感兴趣的:(功能实现,unity,游戏引擎)