用Unity做第一人称射击游戏
文章目录
- 场景搭建
忘记更新了…这段时间有点忙 之后再更新吧
教程晚点更新 先上个成品视频给大家看看
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做第一人称射击游戏相关推荐
- java第一人称射击_[转] Unity实践 --- 第一人称射击游戏_
一. 环境 地图资源,包含了全地图以及灯光.天空盒子. 扩展部分. 不可穿透的部分需要在bake时设置为static. 二. 设置 1. 相机 1> 主相机 挂载控制视角的c#组件. tag为m ...
- unity实践————第一人称射击游戏
一. 环境 地图资源,包含了全地图以及灯光.天空盒子. 扩展部分. 不可穿透的部分需要在bake时设置为static. 二. 设置 1. 相机 1> 主相机 挂载控制视角的c#组件. tag为m ...
- unity3D第一人称射击游戏(推荐)
unity3d第一人称射击游戏(推荐) 第一部分:简介 这个教程中,我们详细了解下如何制作一个简单的第一人称射击游戏(FPS).其中将介绍一些基本的3D游戏编程的概念和一些关于怎样如游戏程序员般思 ...
- Unity VR学习:第一人称射击游戏(1)
Unity VR学习:第一人称射击游戏(1) 1.封装标签和场景淡入淡出效果实现 (1) 封装标签 1.标签有Player,Enemy,GameController,Fader(画布),MainCam ...
- unity第一人称射击游戏,枪击游戏,功能完整可以当大作业或者毕设
unity第一人称射击游戏,枪击游戏(含源码和exe导出文件,下载链接在文末) unity第一人称枪击游戏,分为海岛地图和沙漠地图,可以开镜射击,敌人可以移动,菜单页面有开始游戏,游戏说明,退出三个按 ...
- u3d5第一人称射击游戏(C#脚本)完整版并在iOS9.3系统上真机运行
参考资料:<Unity3D\2D手机游戏开发>(第二版) + 百度 涉及U3D的功能有:摄像机控制.物理.动画.智能寻路等. 开发工具:Unity3D5.3.4,VS2015,VMpl ...
- Unity3D FPS Game:第一人称射击游戏(二)
耗时一周制作的第一人称射击游戏,希望能帮助到大家! 由于代码较多,分为三篇展示,感兴趣的朋友们可以点击查看! Unity3D FPS Game:第一人称射击游戏(一) Unity3D FPS Game ...
- linux 射击 游戏,Ubuntu下安装第一人称射击游戏 Nexuiz 2.4.2(图)
Ubuntu下安装第一人称射击游戏 Nexuiz 2.4.2(图) Nexuiz 是最流行的基于 DarkPlaces 引擎的开源第一人称射击游戏之一.经过漫长的开发旅程,在2008年05月11日,该 ...
- 【UE4 第一人称射击游戏】21-添加动态扩散准心
素材资料地址: 链接:https://pan.baidu.com/s/1epyD62jpOZg-o4NjWEjiyg 密码:jlhr 上一篇: [UE4 第一人称射击游戏]20-添加瞄准十字线 本篇效 ...
最新文章
- 【Python】安利 3 个 pandas 数据探索分析神器!
- 性能测试oracle瓶颈定位,性能测试中如何定位性能瓶颈
- LeetCode 1383. 最大的团队表现值(贪心,优先队列,难)
- 2021年肇庆高考成绩查询,2021年肇庆高中学校排名及录取分数线排名
- python 三维数组_NumPy处理图像不香吗?我用Python把秋日里最美的景色做成了这种效果~...
- [Hibernate系列—] 3. 映射文件与使用SchemaExport自动产生Schema
- HTTP缓存原理及相关知识(2)-CDN
- Kubernetes学习笔记 黑马程序员
- Python-读取本地视频转化为图片方法记录(一)
- 三星固态性能测试软件,三星850 EVO 120G固态硬盘评测——性能测试与保养
- 设置图片在Unity中的默认打开方式
- aip pytesseract识别图片中的文字
- [CSS基础]在一个网页中使用多种不同链接风格的CSS.
- 利用 eutils 实现自动下载序列文件(python实现)
- vdbench 配置案例及参数说明
- 园林专业毕业论文范文
- write-up web source
- 京东H5小游戏《疯狂足球》Android外挂实现
- python实现表格控件
- 参考文献编号批量设置为上标