文章目录

  • 场景搭建

忘记更新了…这段时间有点忙 之后再更新吧
教程晚点更新 先上个成品视频给大家看看
https://www.bilibili.com/video/BV1P54y1C7zm/

场景搭建

先创建一个地面,然后设置其材质,
我们可以在材质这里的Tiling选择6x6表示平铺成6个

为其创建一个材质

按住v有助于方便对齐


利用下载的资源中搭建一个场景

为了使其更有层次,我们将所有场景物体

拖拽到空物体并为其附上静态的属性

然后进行烘培
烘焙好后如图所示

然后利用所给的资源建立左下角所示的枪的ui


在标签那一栏为层次添加ignore bullet的层的组件


然后把这一栏点选掉,这样就可以使得子弹不对不需要的物体产生作用

接下来我们通过脚本来控制游戏:

因为很多游戏的脚本都会影响UI,比如说替换武器,或者说被敌人击中
所以我们需要其他的脚本方便和HUD进行沟通

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HUD : MonoBehaviour
{private static HUD instance;public static HUD GetInstance() { return instance; }private void Awake(){instance = this;}public Image weaponIcon;public Text bulletNum;public Text hpNum;public void UpdateWeaponUI(Sprite icon,int bullte_num){weaponIcon.sprite = icon;bulletNum.text = bulletNum.ToString();}public void UpdateHpUI(int hp_num){hpNum.text = hp_num.ToString();}// Start is called before the first frame update}

将这个组件拖拽给UI并为其赋值

不需要和子弹发生碰撞的物体设置为


选中这个 处于这一层的物体 互相都不会进行碰撞检测了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
/// 用来更新子弹和血量的数量
/// </summary>
public class HUD : MonoBehaviour
{private static HUD instance;public static HUD GetInstance() { return instance; }private void Awake(){instance = this;}public Image weaponIcon;public Text bulletNum;public Text hpNum;public void UpdateWeaponUI(Sprite icon,int bullet_num){weaponIcon.sprite = icon;bulletNum.text = bullet_num.ToString();}public void UpdateHpUI(int hp_num){hpNum.text = hp_num.ToString();}// Start is called before the first frame update}


需要两个层:



开火的时候,上半身要有shoot的动作,但是下半身还是要有走路的状态,因此需要设置mask,并且权重设置为一。

为了能在idle和shoot状态间切换,添加一个bool参数shoot,用状态机脚本idle控制:

我们需要实现,当shoot完一次后自动进入idle状态,所以也就是说,当进入shoot状态时,需要把shoot参数设置为false:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Idle : StateMachineBehaviour
{public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo){animator.SetBool("Shoot", false);}}

由于具有骨骼动画,所以需要把枪放在人体骨骼手的结点下

为了产生开火效果的提示,可以在开火动画产生后坐力的时候添加一个事件:

用Unity做第一人称射击游戏相关推荐

  1. java第一人称射击_[转] Unity实践 --- 第一人称射击游戏_

    一. 环境 地图资源,包含了全地图以及灯光.天空盒子. 扩展部分. 不可穿透的部分需要在bake时设置为static. 二. 设置 1. 相机 1> 主相机 挂载控制视角的c#组件. tag为m ...

  2. unity实践————第一人称射击游戏

    一. 环境 地图资源,包含了全地图以及灯光.天空盒子. 扩展部分. 不可穿透的部分需要在bake时设置为static. 二. 设置 1. 相机 1> 主相机 挂载控制视角的c#组件. tag为m ...

  3. unity3D第一人称射击游戏(推荐)

    unity3d第一人称射击游戏(推荐) 第一部分:简介   这个教程中,我们详细了解下如何制作一个简单的第一人称射击游戏(FPS).其中将介绍一些基本的3D游戏编程的概念和一些关于怎样如游戏程序员般思 ...

  4. Unity VR学习:第一人称射击游戏(1)

    Unity VR学习:第一人称射击游戏(1) 1.封装标签和场景淡入淡出效果实现 (1) 封装标签 1.标签有Player,Enemy,GameController,Fader(画布),MainCam ...

  5. unity第一人称射击游戏,枪击游戏,功能完整可以当大作业或者毕设

    unity第一人称射击游戏,枪击游戏(含源码和exe导出文件,下载链接在文末) unity第一人称枪击游戏,分为海岛地图和沙漠地图,可以开镜射击,敌人可以移动,菜单页面有开始游戏,游戏说明,退出三个按 ...

  6. u3d5第一人称射击游戏(C#脚本)完整版并在iOS9.3系统上真机运行

    参考资料:<Unity3D\2D手机游戏开发>(第二版) +   百度 涉及U3D的功能有:摄像机控制.物理.动画.智能寻路等. 开发工具:Unity3D5.3.4,VS2015,VMpl ...

  7. Unity3D FPS Game:第一人称射击游戏(二)

    耗时一周制作的第一人称射击游戏,希望能帮助到大家! 由于代码较多,分为三篇展示,感兴趣的朋友们可以点击查看! Unity3D FPS Game:第一人称射击游戏(一) Unity3D FPS Game ...

  8. linux 射击 游戏,Ubuntu下安装第一人称射击游戏 Nexuiz 2.4.2(图)

    Ubuntu下安装第一人称射击游戏 Nexuiz 2.4.2(图) Nexuiz 是最流行的基于 DarkPlaces 引擎的开源第一人称射击游戏之一.经过漫长的开发旅程,在2008年05月11日,该 ...

  9. 【UE4 第一人称射击游戏】21-添加动态扩散准心

    素材资料地址: 链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg 密码:jlhr 上一篇: [UE4 第一人称射击游戏]20-添加瞄准十字线 本篇效 ...

最新文章

  1. 【Python】安利 3 个 pandas 数据探索分析神器!
  2. 性能测试oracle瓶颈定位,性能测试中如何定位性能瓶颈
  3. LeetCode 1383. 最大的团队表现值(贪心,优先队列,难)
  4. 2021年肇庆高考成绩查询,2021年肇庆高中学校排名及录取分数线排名
  5. python 三维数组_NumPy处理图像不香吗?我用Python把秋日里最美的景色做成了这种效果~...
  6. [Hibernate系列—] 3. 映射文件与使用SchemaExport自动产生Schema
  7. HTTP缓存原理及相关知识(2)-CDN
  8. Kubernetes学习笔记 黑马程序员
  9. Python-读取本地视频转化为图片方法记录(一)
  10. 三星固态性能测试软件,三星850 EVO 120G固态硬盘评测——性能测试与保养
  11. 设置图片在Unity中的默认打开方式
  12. aip pytesseract识别图片中的文字
  13. [CSS基础]在一个网页中使用多种不同链接风格的CSS.
  14. 利用 eutils 实现自动下载序列文件(python实现)
  15. vdbench 配置案例及参数说明
  16. 园林专业毕业论文范文
  17. write-up web source
  18. 京东H5小游戏《疯狂足球》Android外挂实现
  19. python实现表格控件
  20. 参考文献编号批量设置为上标

热门文章

  1. gitblit搭建本地服务器
  2. 【车机互联】【中控】 车机互联方法【车载高德地图】【手机投屏】【HiCar】【carlife】【腾讯车联】【投屏】
  3. 数字营销闭环解决方案
  4. 【讲稿】Impala在网易大数据中使用和优化实践-P2
  5. 聚合支付PC端-支付宝(即时到账交易接口)
  6. 计算机在切削加工中的应用,计算机技术在机械制造中的应用
  7. 正式对外开放!趣链区块链平台最新试用版都有哪些惊喜?
  8. ps基础-day05形状工具
  9. vue 侧边悬浮_Vue实现PC端靠边悬浮球的代码
  10. Python解析音悦台MV视频地址与封面