【Unity】Jay 开发日志(四)——道具效果的实现(下)
写在最前面:Jay 是我花了五天左右时间开发的同名游戏,基础机制借鉴了涂鸦跳跃,具体的参考视频可以点击以下链接
用周杰伦的第一张专辑Jay做了个游戏(祝杰伦118生日快乐)_单机游戏热门视频
这篇日志将记录游戏中出现的各种道具的效果该如何实现。
(四) 受伤并下坠
该效果出现在关卡 “印第安老斑鸠” 中。碰到老斑鸠后会将父物体的碰撞盒消除并且获得一个向上的初速度,最后自由落体掉出视野,游戏失败。在 OnTriggerEnter2D 中的代码如下:
Parent.GetComponent<Collider2D>().enabled = false;Vector2 Velocity = Parent.GetComponent<Rigidbody2D>().velocity;Velocity.y = 1f;Parent.GetComponent<Rigidbody2D>().velocity = Velocity;
(五) 物体跟随
1) 该效果出现在关卡 “星晴” 中。星星被人物触碰之后,会跟随人物一段时间然后脱落。如果同时有四颗星星跟随人物,便可通关。这里选择了使用队列来储存正在跟随人物的星星,因为其先 FIFO 的特性很符合这里的需求。首先在 OnTriggerEnter2D 中实现星星的存放,代码如下:
if (StarNum < 4){gameObject.GetComponent<AudioSource>().clip = AudioClips[2];gameObject.GetComponent<AudioSource>().Play();StarNum++; collision.gameObject.GetComponent<BoxCollider2D>().enabled = false; //取消星星的碰撞盒Stars.Enqueue(collision.transform); //入队Invoke("StarFall",5f); //星星坠落}
2) 在新函数 StarFall 中实现星星的脱离。这里的逻辑很简单,将星星原本的 gravityScale 设置为 0,脱离后设置为 0.5,这样它就会自动下落。
void StarFall(){StarNum--;Transform FalledStar = Stars.Dequeue(); //出队FalledStar.GetComponent<Rigidbody2D>().gravityScale = 0.5f; }
3) 在 FixedUpdate 中,实现星星的跟随,因为一直调不出我满意的效果,在这里就不过多解析了,可以去参考视频中观看该部分的演示。
//Star FollowingTransform[] StarsArray = Stars.ToArray(); //把队列转化为数组if (StarsArray.Length > 0){Vector3 dir = StarsArray[0].position - transform.position;StarsArray[0].position = transform.position + dir.normalized * Radius;if (StarsArray.Length > 1){for (int i = 1; i < StarsArray.Length; i++){Vector3 dir2 = StarsArray[i - 1].position - transform.position;Vector3 tarPos = StarsArray[i - 1].position + dir.normalized * Radius;StarsArray[i].position = Vector3.MoveTowards(StarsArray[i].position, tarPos, 10f * Time.deltaTime);}}StarsArray[0].RotateAround(transform.position, Vector3.back, 180 * Time.deltaTime);}
(六)其他效果
1) 开发日志(二)中提到过分数暂停,这里进行补充。在 OnTriggerEnter2D 中更改 isPause 为真,然后调用 Invoke 方法 8 秒后更改 isPause 为假。
2) 触碰胜利道具时将 isWon 和 Parent.GetComponent<Player>().End 改为 true,用于在别的脚本中触发一系列效果。
【Unity】Jay 开发日志(四)——道具效果的实现(下)相关推荐
- Unity虚拟现实开发——鼠标开关窗户效果多种实现方案
在使用Unity进行VR开发中遇到鼠标拖动开关窗户的功能需求,我想到三种解决方案: 一:窗户模型必须经过建模软件的处理,使其坐标轴Y轴在窗子边沿:使用欧拉角改变鼠标拖动中的窗户旋转角度(eulerAn ...
- unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题
开发目标 从零开始开发一款音乐手游,类似钢琴块的玩法加QQ炫舞画面,实现一部想玩就可以随时玩的简单音游.该项目着重练手,以及技术交流,欢迎大家指导. 开发计划 计划在两个月内完成游戏,该游戏完成后将进 ...
- 项目实训----Unity多人游戏开发----第四篇
游戏制作之人物移动(二) 综述 主体 内容2:人物移动控制方式--鼠标控制 总结 综述 上次我们主要进行讲解的是游戏开发过程遇到的一些问题,以及想法,主要讲述了如何使用键盘进行控制人物移动.主要是通过 ...
- 【Unity】开发日志1——画笔 The Printer
我每天都想去学习一些东西,但是每次做一半就坚持不下去,一方面的原因是:我的的确确遇到很多困难:另一方面的确是无从下手,不知道如何去学习: 我现在就是这样不断的摸索摸索,所以就写下我摸索的过程.一方面希 ...
- Android Studio开发第四篇版本管理Git(下)
前面一片介绍了在as下如何关联远程仓库,这篇就介绍在开发过程中怎么应用. 提交+Push 如果本地开发代码有改动了或者你觉得某功能做完了,你打算把改动代码提交到远程仓库,这个时候很简单, 还是在工具栏 ...
- Unity编辑器开发(五):实战、开发一个AB包编辑器工具
前言 在我们上一篇(Unity编辑器开发(四):实战.开发一个AB包编辑器工具)的结尾,我们拥有了如下图中那样的一个编辑器窗口: 接下来我们来完成最后部分,也就是包括创建AB包,清理AB包,删除AB包 ...
- Unity 之 实现老虎机滚动抽奖效果
Unity 之 实现老虎机滚动抽奖效果 直接看下效果图吧: 制作思路: 设计四张图片,五个点,每个图片同时向下一个点移动,到最后一个就回到0号点,以此循环. 场景搭建: 创建Image命名为Bg作为电 ...
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中,诸如烟.火.水滴.落叶等粒子效果,都可以使用粒子系统(particle system)来实现.例如,<明 ...
- Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果
Unity 游戏开发技巧集锦之使用忍者飞镖创建粒子效果 使用忍者飞镖创建粒子效果 游戏中,诸如烟.火.水滴.落叶等粒子效果,都可以使用粒子系统(particle system)来实现.例如,< ...
- Android studio中NDK开发(四)——使用addr2line分析Crash日志 backtrace
文章目录 一.前言 二.分析 1.先提取backtrace部分 2.提取对应so库的信息 3.提取错误地址 三.使用addr2line对地址进行转换 1.addr2line工具的路径放在 2.Term ...
最新文章
- ((sizeof(n)+sizeof(int)-1)~(sizeof(int)-1))
- nagios安装与配置详解1
- javascript一些基础用法
- java安全编码指南之:文件IO操作
- vue从入门到精通之进阶篇(四)模块化工具 webpack
- phpFpm加载php,php-fpm添加service服务的例子
- redis---队列的操作
- 运用hanlp 通过 python 结合jpype 导出依存句法可视化
- VirtualBox安装MAC虚拟机,屏幕分辨率小,扩大的办法
- oracle asm结构,深入了解Oracle ASM
- hp服务器虚拟网卡,HP服务器升级网卡固件、驱动来解决网卡bug的操作办法
- 二、Spring AOP 切面的定义
- Python3-网页爬取-批量爬取贴吧页面数据
- IGRP原理及配置案例
- HTML第6章上机练习3(制作京东快报页面)
- 图片的分辨率大于设备分辨率或者小于设备的分辨率的显示问题
- CheckListBox的一些用法!
- 中台干货!百度/小米/滴滴/京东,中台架构实践大比拼!
- 浏览器支持字体大小情况 以及 Chrome设置小于12px的字体的处理方案
- input输入框type设置为number,maxlength无效
热门文章
- 分布式系统时钟同步方案
- 007-aven-assembly-plugin和maven-jar-plugin打包,java启动命令
- r语言数据变量分段_R语言之数据汇总
- Java模拟登录强智教务系统分析思路
- 利用html2canvas和vue-qr生成带头像二维码的分享海报(二)
- 【强化学习】实现Atari游戏的自动化学习(仅供参考)
- python读取文本某一行内容
- Day621.Spring Test 常见错误 -Spring编程常见错误
- sendcloud php,Sendcloud的x_smtpapi具体如何定义?
- 如何解决Word只能用安全模式打开