unity 基本寻径

news2025/1/29 8:50:42

一、实现效果:敌人追逐玩家,自动躲避障碍物

 

二、游戏框架

Plane:平面,是玩家和敌人可以行走的区域

Player:玩家,可以在平面上移动,绕开障碍物

Enemy:敌人,可以追逐玩家,绕开障碍物

障碍物:五个正方体,玩家在移动的过程中和敌人在追逐的过程中都需要绕开障碍物

墙:四个立方体,防止玩家移动过程跑出平面

三、游戏实现

1、创建平面,赋予一定的颜色,使界面美观

2、创建一个小球,命名为player,设置tag也为player,赋予蓝色,添加character controller组件,编写代码使小球移动,代码如下

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

public class move : MonoBehaviour
{
    public float speed = 6.0f;
    public float gravity = -9.8f;
    private CharacterController _charController;
    // Start is called before the first frame update
    void Start()
    {
        _charController = GetComponent<CharacterController>();//使用附加到相同对象上的其他组件
    }

    // Update is called once per frame
    void Update()
    {
        float x = Input.GetAxis("Horizontal") * speed;
        float z = Input.GetAxis("Vertical") * speed;
        Vector3 movement = new Vector3(x, 0, z);
        movement = Vector3.ClampMagnitude(movement, speed);//使对角移动的速度和沿轴移动的速度一样
        movement.y = gravity;
        movement *= Time.deltaTime;
        movement = transform.TransformDirection(movement);//本地坐标变为全局坐标
        _charController.Move(movement);//character通过movement向量移动
    }
}

 

3、创建一个小球,命名为enemy,设置tag为enemy,赋予红色,添加网格代理(Nav Mesh Agent)这里可以调整敌人追逐时的速度,编写代码使enemy追逐player,代码如下:

using System.Collections;
using System.Drawing;
using UnityEngine;
using UnityEngine.AI;

public class enemy : MonoBehaviour
{
    NavMeshAgent pathfinder;
    Transform target;
    void Start()
    {
        pathfinder = GetComponent<NavMeshAgent>();
        target = GameObject.FindGameObjectWithTag("Player").transform;

    }
    void Update()
    {
        pathfinder.SetDestination(target.position);
    }
}

 4、添加墙体,创建一个空物体命名为墙,创建四个立方体,调整大小和位置,赋予一定的颜色,放在plane的四周

 5、添加障碍物,创建一个空物体命名为障碍物,创建五个立方体,调整位置和大小,效果如下图

6、网格烘焙, 选择window->AI->Navigation,然后在右上角就可以看到Navigation的标志

 点击navigation,选中plane,把Navigation Static勾选上,Navigation Area选择Walkable

 选中cube,把navigation Static勾选上,Navigation Area选择Not Walkable,其余的8个粗笨也是一样的设置方法

 选中bake,把Agent Radius改为0.3,可根据自己的情况修改,点击右下角的bake进行烘焙,烘焙后的效果如下(左边的上面那幅图),其中蓝色为可行走区域

 7、点击运行,移动player,enemy就跟着动了,一定要记得修改player的tag为player,否则enemy找不到要追逐的物体

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

红外遥控且自动避障的嵌入式智能小车系统

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次实验使用树莓派作为开发平台&#xff0c;AlphaBot 作为开发载体&#xff0c;Python 作为开发语言&#xff0c;开发一种基于红外线遥控控制的、可自动避障的嵌入式智能小车系统。 智能系统中的嵌入式应用 实验目的 嵌入式…

MySQL双写缓冲区(Doublewrite Buffer)

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 文章目录 摘要为什么需要Doublewrite BufferDoublewrite Buffer原理Doublewrite Buffer相关参数总结 摘要 InnoDB是MySQL中一种常用的事务性存储引擎&#xff0c;它具有很多优秀的特性。其中&#xff0c;Dou…

pip的常用操作命令

1. 忽略已安装的库&#xff08;以llvmlite为例&#xff09; pip install xxx --ignore-installed llvmlite 2. 错误 - AttributeError: int object has no attribute endswith 解决方案&#xff1a; 常见原因因为使用的pip为pip2&#xff0c;可以使用 pip -V 查看pip版本&a…

springboot+vue校园博客系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园博客系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风歌&a…

AD 域环镜 本地管理员密码解决方案(LAPS)部署

前言&#xff1a; 我们知道window10装好后&#xff0c;默认本地管理员账号Administrator是关闭的&#xff0c;通过组策略启用本地管理员账号没有问题&#xff0c;具体方法在下面&#xff0c;但是由于微软《MS14-025&#xff1a;组策略首选项中的漏洞可能允许特权提升&#xff…

06-引入SpringSecurity 尚筹网

SpringSecurity 框架用法简介 用户登录系统时我们协助 SpringSecurity 把用户对应的角色、权限组装好&#xff0c;同时把各个资源所要求的权限信息设定好&#xff0c;剩下的“登录验证”、“权限验证”等等工作都交给SpringSecurity。 权限管理过程中的相关概念 主体 英文单…

【源码解析】Spring Cloud Gateway使用RedisRateLimiter实现限流

实现方案 在gateway项目中引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency><dependency><groupId>org.springframework.boot</g…

3BHB003154R0101确定每个控制器将如何知道设备地址、识别发给它的消息

3BHB003154R0101确定每个控制器将如何知道设备地址、识别发给它的消息 DNP3 协议用于各种 SCADA 系统组件之间的通信。这些系统组件包括 SCADA 主站或HMI、远程终端单元和智能电子设备。SCADA 系统的操作员可以在其操作中监控 DNP3 协议&#xff0c;以提高系统可靠性。这将通过…

java版深圳 工程管理系统软件 自主研发,工程行业适用 软件源码

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示…

Redis 常见缓存问题与解决方案

文章目录 1. 缓存穿透解决方法 2. 缓存击穿解决方法 3. 缓存雪崩解决方法 在 redis 的应用场景中&#xff0c;需要考虑缓存在某些场景下可能出现的问题&#xff1a; 缓存穿透 缓存击穿 缓存雪崩 以下缓存问题的讨论都是基于以下应用架构讨论的&#xff1a; 1. 缓存穿透 对应…

Python 中的字典顺序

文章目录 Python 中的字典顺序在 Python 中将数字列表按词典顺序排序 我们将介绍 Python 中的字典顺序。 我们还将通过示例讨论实现词典顺序的不同方法。 Python 中的字典顺序 在数学中&#xff0c;词典顺序或词典顺序是对按字母顺序排列的元素列表或元素数组进行排序的过程。…

Java学习之Swing图形界面

Java提供的Swing组件众多&#xff0c;下面列举其中的几种&#xff0c;本章主要讲解顶层容器&#xff0c;其余容器在下面几章会做讲解。 1、顶层容器 1&#xff09;顶层容器就是不包含在其他容器中的容器&#xff0c;Swing中常见的顶层容器有JFrame&#xff0c;JFrame被称为窗口…

分享78个C 源码,总有一款适合您

C 源码 分享78个C 源码&#xff0c;总有一款适合您 源码下载链接&#xff1a;https://pan.baidu.com/s/1_vslGj8XQUGbUhQFnKZg4g?pwdoe87 提取码&#xff1a;oe87 OpenCV计算机视觉库 v4.7.0 OpenCV计算机视觉库 v3.4.19 Photoflare图像编辑器v1.6.12 开源向量数据库mil…

Lecture 13(Extra Material):PPO

On-policy v.s.Off-policy On-policy: The agent learned and the agent interacting with the environment is the same.Off-policy: The agent learned and the agent interacting with the environment is different. Issue of Importance Sampling: 尽管q可以是任意的&am…

day43—编程题

文章目录 1.第一题1.1题目1.2思路1.3解题 2.第二题2.1题目2.2思路2.3解题 1.第一题 1.1题目 描述&#xff1a; 输入两个整数 n 和 m&#xff0c;从数列1&#xff0c;2&#xff0c;3…n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来 输入描述: 每个测试输入包…

Java 基础进阶篇(十二)—— Stream 流常用方法总结

文章目录 一、Stream流概述二、获取Stream流2.1 集合获取 Stream 流2.2 数组获取 Stream 流 三、中间方法四、终结方法五、Stream流的综合应用六、收集Stream流 一、Stream流概述 Stream 流是在 Java8 中&#xff0c;得益于 Lambda 所带来的函数式编程&#xff0c; 引入了一个…

前端技术——css

1.CSS的引入 【1】为什么要学习CSS? 如果只用HEML画页面的话--->这个页面就是页面上需要的元素罗列起来&#xff0c;但是页面效果很差&#xff0c;不好看&#xff0c;为了让页面好看&#xff0c;为了修饰页面。所以我们需要用到CSS。 CSS的作用&#xff1a;修饰HTML页面…

总结844

学习目标&#xff1a; 月目标&#xff1a;5月&#xff08;张宇强化前10讲&#xff0c;背诵15篇短文&#xff0c;熟词僻义300词基础词&#xff09; 周目标&#xff1a;张宇强化前3讲并完成相应的习题并记录&#xff0c;英语背3篇文章并回诵 每日必复习&#xff08;5分钟&#…

密码学:流密码.(对称密码)

密码学&#xff1a;流密码. 流密码(Stream Cipher)属于对称密码算法中的一种&#xff0c;其基本特征是加解密双方使用一串与明文长度相同的密钥流&#xff0c;与明文流组合来进行加解密密钥流通常是由某一确定状态的伪随机数发生器所产生的比特流&#xff0c;双方将伪随机数生…

数据结构-二叉树遍历线索二叉树

目录 一、二叉树的定义 *几种特殊的二叉树 *二、二叉树的性质 三、二叉树的存储结构 *四、二叉树的遍历 *4.1先序遍历 * 4.2中序遍历 * 4.3后序遍历 非递归算法遍历 *4.4层序遍历 *五、遍历序列构造二叉树 六、线索二叉树 6.1逻辑结构: * 6.2构造线索二叉树 一、二…