Unity官方FPS教程解析(二)

2023-10-26

在上一篇文章中我们只是初步了解了这个游戏层次构造的一部分,今天我们继续上一章的内容吧。

Enemy 两个enemy本质上没有差别,所以就其中一个来说说吧

     Enemy_Turret:这个初始场景的boss,一个站桩型敌人,当选中其根物体后我们可以看见如图:

 其根物体下第一个既是这个敌人的预制件,第二个是他的血条,第三个是一个挂载了检测玩家的空物体。

所以,我们可以得出,一个基本的可互动的敌人至少需要有一个模型(让你能看得见),一个血条(让你能打的),以及一个交互脚本,所以就官方例子来说,敌人已经足够简化了。

Path是其中一个敌人的巡逻路径,此处就不展开了(后面脚本会提及)。

PICKUP :可捡拾的道具,通过触发器交互或者物理交互(取决于自己),依然是一个模型加一个交互检测脚本。

关卡设置此处也不多赘述,可根据自己的想法构造一个。

然后就是GENERAL部分了

(1) GameManager也是同样是一个根物体,负责事件统一管控和类型整合:

其结构是这样的:

首先是第一个:EndGameFadeCanvas 一个死亡的时候的淡出画面,就是一张黑色的Image,通过改变颜强度来实现(如果不太理解的话,可以修改他的Image中颜色来观察,例如下一张图)

 

 如图,我将颜色改成了红色,再来观察一下改变了什么

 第二个:GameHUD

其下包括了两个主要部分,第一个就是FeedBackFlashCanvas,主要为状态反馈,其作用与上面的淡出效果一样,一个是受打击时反馈,一个是血量低时反馈(此处为了凸显效果改为了亮色),这里直接贴图。

 HUD:第一个WeaponHUDManager,管理武器的,有多个武器时在指定的区域罗列出武器

第二个,Crosshair,枪的准星和边框

第三个,Compass,方向和敌人显示,如图(敌人为脚本判定写入,原组件只含方向)

 第三个,FramerateConunter,就是帧数显示器

第四个和第五个还有第六个都在下面这张图上,红笔(NotificationsRect),绿笔(ObjectivesRect),蓝笔(DispalyMessageRect)

 第七个,ButtonLeftCorner 就是这个

 然后剩下的最后一个就是游戏中的暂停菜单

ObjectiveKillEnemies:其挂载了一个脚本,显示的就是游戏开场时的任务描述

NavMeshSurface:这是官方的寻路系统NavMeshManager,具体可以查看官方文档,此处是利用寻路系统标记可行走地面以及限制。

到此算是整个案例的基本的层次结构大都了解了,剩下的就是最重要的脚本了,下一期我们就从我们的主角Player的控制讲起吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity官方FPS教程解析(二) 的相关文章

  • UE4 解决景深效果闪烁问题

    原因 1 模型的垂直竖线 造成抗锯齿算法对竖线的渲染计算 处于一种不稳定的状态 因此闪烁 解决办法 使用LOD 用贴图去替代线条模型 2 材质的法线贴图 当法线贴图含有垂直竖线的纹理效果 也会造成闪烁 比如这种幕墙材质 解决办法 关闭或动态
  • Unity中实现倒计时的几种方式

    1 Time time using UnityEngine public class TimeTest MonoBehaviour public float secound 10 void Update Timing private flo
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • unity: C#的Action Event Delegate的异同

    目录 一 Action 二 Event 三 Action和Event区别 四 Delegate 总结 Action Event Delegate的异同 前言 Action Event和Delegate都是C 语言中的重要概念 分别用于管理函
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • unity实现鼠标右键控制视角

    主要实现的功能是相机跟随主角 鼠标右击移动后 相机的视角会旋转 思路 在主角里创建空的子物体 把相机绑在空物体上 通过旋转空物体来实现视角的旋转 要把相机调整到适当位置 代码如下 public float rotateSpeed 100 设
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • Unity万向节死锁解决方案(2023/12/4)

    1 万向节死锁无法解决 这是因为它的特性就是如此 就像玻璃杯就是玻璃 这不可否认 别钻牛角尖昂 2 大多数情况下欧拉角足够用 例如 CF 摄像机不可能绕z轴旋转 x轴旋转也不会超过九十度 因为那样人物的腰子会被扭断 塔防游戏 保卫萝卜 吃鸡
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • mixamo根动画导入UE5问题:滑铲

    最近想做一个跑酷游戏 从mixamo下载滑铲动作后 出了很多动画的问题 花了两周时间 终于是把所有的问题基本上都解决了 常见问题 1 动画序列 人物不移动 2 动画序列 人物移动朝向错误 3 蒙太奇 人物移动后会被拉回 4 蒙太奇 动画移动
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文

随机推荐

  • [23最新版新手向]Linux系统下安装MMDetection

    前言 MMDetection 是商汤和港中文大学针对目标检测任务推出的一个开源项目 它基于Pytorch 实现了大量的目标检测算法 例如 fast rcnn faster rcnn detr 等算法 一 安装 UBuntu20 04 及创建
  • C语言竞赛小题分析

    问题1 单身狗的愤怒 题目描述 罩得住学长是工作室最帅的帅哥 所以集训的学妹都喜欢罩得住学长 但是工作室的其他学长很不爽 现在挑5个女生出来 如果女生喜欢罩得住学长就为1 不喜欢就是0 喜欢的人越多 学长们的仇恨值越高 请求出学长们的愤怒值
  • Jetson nano中使用tensorrt推理yolov5

    克隆下载yolov5项目 准备yolov5项目 从仓库下载5 5 0版本 git clone b v5 0 https github com ultralytics yolov5 git 下载权重地址 https github com ul
  • 关于Commit message代码提交

    Commit message代码提交规范 目录 一 简述 二 Commit message格式 命令行方式 1 Header 2 Body 3 Footer 4 Revert 三 工具 1 Commitizen 2 validate com
  • c++关键字之volatile

    1 volatile 直接存取原始内存地址 volatile 求助编辑百科名片 volatile 就象大家更熟悉的const一样 volatile是一个类型修饰符 type specifier 它是被设计用来修饰被不同线程访问和修改的变量
  • Maven中央仓库地址

    Maven 中央仓库地址有一下几个 可能这里不全 但一定能够使用 1 http mvnrepository com 属于美化版本 国外网站 在国内可能下载比较慢 2 http repo1 maven org maven2 属于基本版本 查找
  • nodejs之文件下载

    request模块实现下载 app js var express require express var app express 创建express实例 var routes require routes routes js 吧路由引入 代
  • Swin-Transformer-Object-Detection环境搭建训练流程及问题

    一 背景 Swin Transformer Swin代表移位窗口shifted window 可以作为计算机视觉的通用backbone 它的github网址是Swin Transformer 然后它有好几种应用 Getting Starte
  • 古风排版 c语言

    中国的古人写文字 是从右向左竖向排版的 本题就请你编写程序 把一段文字按古风排版 输入格式 输入在第一行给出一个正整数NN lt 100 lt 100 是每一列的字符数 第二行给出一个长度不超过1000的非空字符串 以回车结束 输出格式 按
  • flutter如何实现点击事件

    在Android中 您可以通过调用方法setOnClickListener将OnClick绑定到按钮等view上 在Flutter中 有两种方法 1 如果Widget支持事件监听 则可以将一个函数传递给它并进行处理 例如 RaisedBut
  • 华硕飞行堡垒进入bios

    1 关机重启 在重启时一直按住F2进入如下页面 2 按下F7 进入如下页面 3 通过移动键盘右键 gt 键 使界面来到Advanced 4 通过移动键盘下键 移动到Advanced中的SVM Mode 通过Enter键进行下拉选取 入下图小
  • unity知识学习(一)巨型太阳---组件Lens Flare的运用

    unity关于在天空设置一个巨型太阳 组件Lens Flare的运用 介绍 unity版本 如何制作巨型太阳 最基本的操作 如何制作巨型太阳 关键操作 我制作好的巨型太阳 介绍 本次知识前面比较简单 因此将基本操作和关键点操作分开 读者可方
  • CSS 实现文字渐变色

    1 background 属性设置渐变色 1 源码示例 text background image linear gradient to right pink purple color transparent webkit backgrou
  • eclipse New Server Runtime Environment 列表中没有 Apache Tomcat

    该问题主要原因可能是 Eclipse插件不全引起 按以下步骤安排插件即可 1 点击工具栏上的Help gt Install New Software 2在弹出的对话框的 Work with 输入 http download eclipse
  • 检查你的电脑是否支持硬件虚拟化技术

    有时候需要知道电脑是否支持硬件虚拟化技术 这种情况可能需要在在windown7系统上装MacOS 系统 通过使虚拟机 在虚拟机上安装出现如下问题是 首先 在更改你的BIOS设置之前 检测你的处理器是否支持硬件虚拟化技术 下载 securab
  • 等和子数组最小和(Java)

    题目描述 给定一个数组nums 将元素分为若干个组 使得每组和相等 求出满足条件的所有分组中 组内元素和的最小值 输入描述 第一行输入 m 接着输入m个数 表示此数组nums 数据范围 1 lt m lt 50 1 lt nums i lt
  • ElasticSearch从入门到精通:常用操作

    hello 大家好 我是 Jackpop 硕士毕业于哈尔滨工业大学 曾在华为 阿里等大厂工作 如果你对升学 就业 技术提升等有疑惑 不妨交个朋友 我是Jackpop 我们交个朋友吧 在前面这一部分 我已经解释了ElasticSearch的基
  • 51单片机四个并行I/O接口

    P0口 功能1 作为正常的并行I O接口 P1 P2 P3原理相同 控制端C 0 MUX开关向下 经过与门 T1截止 P0口作为输出口时 a 需要在三极管T2上部添加上拉电阻如图所示 b 内部总线输出数据为1 经过Q非得0 再经过MUX开关
  • 用python将时间序列信号或一维数组 转化成 图像的几种方法

    用python将时间序列信号或一维数组转化成图像的几种方法 深度学习在计算机视觉有了非常广泛的应用 视觉图像数据为二维数据 而在故障诊断领域的数据 来自于传感器的采集 属于典型的一维时间序列 因而绝大多数问题可以抽象成时间序列分类 TSC
  • Unity官方FPS教程解析(二)

    在上一篇文章中我们只是初步了解了这个游戏层次构造的一部分 今天我们继续上一章的内容吧 Enemy 两个enemy本质上没有差别 所以就其中一个来说说吧 Enemy Turret 这个初始场景的boss 一个站桩型敌人 当选中其根物体后我们可