当前位置:网站首页>【Unity项目实践】合成大西瓜
【Unity项目实践】合成大西瓜
2022-07-29 00:34:00 【51CTO】
框架
主菜单
场景切换
计分
游戏逻辑
合成动效
音效
包含的内容:
- 背景、墙、水果、死亡线、UI、音乐
逻辑:
- 待命水果X轴跟随鼠标落下,待命水果是没有重力的
- 水果落地有碰撞,带有弹性,相同水果碰撞合成更大的水果
- 如果抵达死亡线游戏失败,重新加载场景
- 显示当前分数

场景
地板、墙添加方形的碰撞体
水果添加circle碰撞体
添加弹跳效果:
在物体上添加新的material(物理材质只包含两个参数:摩擦力和弹性)
我们将摩擦力调整为0.4, 弹性调整为0.2。
将水果做成预制体:
给不同的水果添加circle collider和rigidbody
游戏逻辑
Start:游戏一开始就执行,也就是游戏物体一出现就运行
Update:每一帧执行
创建变量:
水果预制体数组 GameObject[]
待定水果的位置 Transform
创建一个子物体代表待定水果的位置
待命水果
方法:
在Start中创建水果,写一个创建水果的方法
- 随机一个整数整数值,获得对应的数组预制体,并且将其实例化,创建一个临时坐标,降临时坐标等于我们创建的位置
- 获得实例化的物体的RigidBody组件的重力
- 在Update中获得鼠标位置,将屏幕坐标转换成世界坐标;然后让待命物体的X轴和鼠标X轴一致(原理是设定两个浮点值作为左右边界值)
- 判断鼠标的状态
按住鼠标的时候物体随鼠标移动
松开鼠标的时候,给其rigidbody的gravity赋值为1
然后延迟0.8秒再调用产生物体的方法
在所有方法之前先判断当前是否有物体在场景中
- 水果合成
- 新建一个脚本挂载在水果物体上,使用OnCollisionEnter来判断碰撞,如果碰到的collider的标签是我们添加的标签
- 合成的时候需要判断:当前物体不是待定物体且碰到的物体的标签也是水果;并且获得物体的id,只渲染一个
- 游戏失败逻辑
- 如果不是待定物体,碰撞到了死亡线,且不是第一次碰到,那么显示游戏失败。
- UI
- 添加一个canvas-text,新建一个脚本挂载,将其设置为单例,为Score添加一个属性,然后在水果碰撞的脚本里更新分数;
- 添加音效
- 添加一个audio source,再挂载一个脚本(单例模式)获取AudioSource类型的组件
- 创建一个播放音频的方法,参数是audioclip;audiosource.playoneshot(audioclip)
- 在水果上挂载的脚本中,更改分数的同时播放音效playaudio方法
- 判断如果碰撞到的物体是地面,那么播放落地的音效

边栏推荐
- 【Leetcode-滑动窗口问题】
- Naver three party login
- Regular checksum time formatting
- Naver 三方登录
- Cookies and sessions
- Test / development programmers rely on technology to survive the midlife crisis? Improve your own value
- uniapp createSelectorQuery().select 获取返回null报错
- 代码生成器
- Digital twin rail transit: "intelligent" monitoring to clear the pain points of urban operation
- Flink Postgres CDC
猜你喜欢

Test / development programmers rely on technology to survive the midlife crisis? Improve your own value

Flink SQL Hudi actual combat

Expression evaluation

redis安装,集群部署与常见调优

J9数字论:什么因素决定NFT的价值?

AlphaFold揭示了蛋白质结构宇宙-从近100万个结构扩展到超过2亿个结构

Redis is installed on Linux

【SQL之降龙十八掌】01——亢龙有悔:入门10题

Oozie job scheduling

Groundwater, soil, geology and environment
随机推荐
Synchronized关键字详解
20220728-不纯为数字的字符串排序
[MySQL] historical cumulative de duplication of multiple indicators
面试官:程序员,请你告诉我是谁把公司面试题泄露给你的?
Digital currency of quantitative transactions - generate foot print factor data
Flink SQL Hudi 实战
数据库的decimal类型的数据,发现可以通过resultSet.getDouble去拿到这个数据,但是通过getObject却拿不到这个属性。
Expression evaluation
括号匹配的检验
【mysql】字符串转int
RHCE command practice (II)
RHCE命令练习(一)
LeTax记录\documentclass{},authoryear属性使用
Bracket matching test
uniapp createSelectorQuery(). Select get returns null error
Flink Postgres CDC
uniapp movable-view表格缩放过程想保持容器高度不变的解决办法
Docuware mobile labor solution can help you build a new productivity model: anytime, anywhere, any device
els 到底停止
nep 2022 cat