SIKI学院简易射击游戏与数据读取保存学习笔记
知识点(疑问点)
1、如何控制枪的旋转(朝向)?
2、如何控制怪物的生成,消灭?
3、如何保存当前游戏数据?
4、游戏相关的开始结束,暂停功能如何制作?
1、
首先将枪放置在一个合适的位置,分别在X轴和Y轴上旋转,获取X轴和Y轴的最大旋转幅度。
通过Input.mousePosition,获取当前的X、Y坐标,然后分别处以Screen.width与Screen.height,算出当前屏幕位置的百分比,接着用百分比乘以最大旋转幅度。
接下来就是一些功能补充,添加一个子弹预制件,点击的时候生成,然后通过Rigidbody组件调用.AddForce()方法添加一个力发射子弹。
小总结:学习到了根据屏幕百分比距离位置控制枪的朝向,以及AddForce()方法。
2、
首先设计一个怪物类,一共有四种怪物种类,声明一个游戏数组,然后通过界面拖拽赋值(代码赋值也可以,界面拖拽更方便)。怪物类本身通过协程来控制。在Start()里先对数组所有游戏物体遍历,将BoxColider的状态设置为false。调用第一个协程,随机怪物生成。
private void Start(){foreach(GameObject monster in monsters){monster.GetComponent<BoxCollider>().enabled = false;monster.SetActive(false);}//调用协程StartCoroutine("AliveTimer");}IEnumerator AliveTimer(){//等待1-4秒后执行ActivateMonster方法yield return new WaitForSeconds(Random.Range(1, 5));ActivateMonster();}private void ActivateMonster(){int index = Random.Range(0, monsters.Length);activeMonster = monsters[index];activeMonster.SetActive(true);activeMonster.GetComponent<BoxCollider>().enabled = true;//调用死亡时间的协程StartCoroutine("DeathTimer");}
调用完毕开始调用第二个协程,怪物死亡消失协程。
IEnumerator DeathTimer(){yield return new WaitForSeconds(Random.Range(3, 8));DeActivateMonster();}private void DeActivateMonster(){if (activeMonster != null){activeMonster.GetComponent<BoxCollider>().enabled = false;activeMonster.SetActive(false);activeMonster = null;}//调用激活时间的协程,达到一个反复激活和死亡的循环StartCoroutine("AliveTimer");}
计时时间到之后再调用生成怪物协程。
逻辑:Start()开始调用生成怪物计时函数,计时结束,生成怪物,同时开启怪物消失计时函数,计时结束,怪物消失,再次调用怪物计时函数。无限循环。实现方式——协程。
总结:学习了协程的闭环使用。
3、
存档有四种方法,二进制,XML,Json,还有持久化数据(很少用来存储大型数据,一般用来制作记住账号等功能),调用相关API。
小总结:暂无,都是调用相关的API。
4、制作一个UI界面,添加Button相关组件,在该类中拿到怪物控制类,点击开始的时候调用开始协程。暂停功能:通过Time.timeScale,因为使用的是协程,将Time.TimeScale设置为0即可。另外设置游戏状态,因为枪类的转向代码是写在update中,用控制状态确定是否执行。
小总结:了解到Time.timeScale控制游戏状态。
总体总结:通过鼠标在屏幕上的位置控制物体的转向。Time.timeScale控制游戏状态。协程的循环使用。
ps:这里是萌新U3D程序员,记录工作中的问题的解决方法与日常的学习笔记。
ps:如果你无意中看到了这篇文章,估计不知道我在写啥,如果你也对unity制作游戏感兴趣,可以学一下这个视频,然后再来看我的总结,或许能有点收获。unity射击游戏独挡与独挡(免费)
SIKI学院简易射击游戏与数据读取保存学习笔记相关推荐
- 《R数据科学》学习笔记|Note5:使用dplyr进行数据转换(下)
点击蓝字 关注我! 写在前面 本系列为<R数据科学>(R for Data Science)的学习笔记.相较于其他R语言教程来说,本书一个很大的优势就是直接从实用的R包出发,来熟悉R及数据 ...
- 斯坦福大学数据可视化课程学习笔记:第一节 可视化的发展与目标
<斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...
- 斯坦福大学数据可视化课程学习笔记:第二节 从数据到图像
<斯坦福大学数据可视化课程学习笔记>课程资源来自于斯坦福大学数据可视化课程,是我所在团队实习生提升计划的一部分.本系列是 "秉姝" 同学在学习过程中记录和整理的学习笔记 ...
- 大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】
视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码: ...
- 《R数据科学》学习笔记|Note8:使用dplyr处理关系数据
使用dplyr处理关系数据 往期文章 <R数据科学>学习笔记|Note1:绪论 <R数据科学>学习笔记|Note2:使用ggplot2进行数据可视化(上) <R数据科学& ...
- 大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】
视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666 [P001-P ...
- hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶
hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶 一.回顾知识 1.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4) ...
- python如何读取tfrecord_tensorflow学习笔记——高效读取数据的方法(TFRecord)
关于TensorFlow读取数据,官网给出了三种方法: 供给数据(Feeding):在TensorFlow程序运行的每一步,让python代码来供给数据. 从文件读取数据:在TensorFlow图的起 ...
- 《LUA游戏开发实践指南》学习笔记1
本文只做个人学习笔记! Lua脚本语言的优点:免费.小巧.快速和易移植. 游戏项目中的Lua,可以完成以下工作 编辑游戏用户界面(玩家和你的游戏进行交互的媒介) 定义.存储和管理游戏数据(Lua本人并 ...
最新文章
- session的使用
- android 多点触控缩放,Android多点触控(图片的缩放Demo)
- [转]vue-codemirror 代码编辑器
- css中设置br标签之后的样式_CSS学习
- Objective-C入门教程(摘录)
- 【CS224N笔记】词向量和词义
- JAVA 疯狂讲义 学习笔记
- 使用python发送qq邮件
- pandas的自带数据集_python数据分析万字干货!一个数据集全方位解读pandas
- 游戏画质提升1《X战警金刚狼前传》画质增强修改
- 【安卓wechat微信导出聊天记录】
- c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统
- Android apktool使用中遇到的问题
- 试题与研究杂志试题与研究杂志社试题与研究编辑部2023年第2期目录
- ubuntu双系统引导梅花_Ubuntu Windows双系统和USB无线网卡安装的正确方法
- 整理C语言和C++中常用输入输出函数
- 有关Linux 软件包管理器 yum的命令打字练习
- centos 编译安装cmake和常见过程错误解决办法(linux系统均适用,以爬坑。。)
- 解决谷歌浏览器安装不了crx插件的问题
- HTML网页表单学习(全方面详解)
热门文章
- D盾让隐藏账户无所遁形
- RiPro8.6美化包-huzao-child v3.0子主题简洁大气集成后台
- ArcGIS创建地图包:快速分享多个图层
- AlexNet (ImageNet模型)
- 响铃:互联网金融理财端寡头时代来临,到底谁该被剩下来?
- c语言----windows系列教程之音频录入与处理
- 【英文文献】如何阅读英文文献
- vs打开别人cpp_网恋奔现遇到现实版乔碧萝,怀疑她拿了别人的照片……
- 【Linux】设备和磁盘分区|磁盘管理|/dev/sda|/dev/sdb
- 设计模式(八)装饰模式