当前位置:网站首页>【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方法
- 判断如果碰撞到的物体是地面,那么播放落地的音效

边栏推荐
- Linux redis source code installation
- 【搜索】—— DFS之剪枝与优化
- MySQL time is formatted by hour_ MySQL time format, MySQL statement queried by time period [easy to understand]
- 新1688 API 接入说明
- Flink SQL Hudi 实战
- Docker-compose安装mysql
- Expression evaluation
- File “manage.py“, line 14 ) from exc
- Django使用MySQL数据库已经存在的数据表方法
- SQL question brushing: find the current salary details and department number Dept_ no
猜你喜欢

测试/开发程序员靠技术渡过中年危机?提升自己本身的价值......

Flask reports an error: pymysq1.err OperationalError:(1054, “Unknown column ‘None‘ in ‘field list‘“)

Redis installation, cluster deployment and common tuning

Linux Redis 源码安装

nep 2022 cat

SQL question brushing: find the last of all employees_ Name and first_ Name and corresponding department number Dept_ no

【搜索】—— DFS之剪枝与优化

地下水、土壤、地质、环境人看过来

DVWA之SQL注入

第二轮Okaleido Tiger热卖的背后,是背后生态机构战略支持
随机推荐
uniapp createSelectorQuery().select 获取返回null报错
了解网址url的组成后 运用url模块、querystring模块和mime模块完善静态网站
A ten thousand word blog post takes you into the pit. Reptiles are a dead end [ten thousand word pictures]
APP接入Kakaotalk三方登录
RHCE命令练习(二)
Closures and decorators
表达式求值
【SQL之降龙十八掌】01——亢龙有悔:入门10题
J9数字论:什么因素决定NFT的价值?
C语言犄角旮旯的知识之形参、实参、main函数参数、数组或指针做函数参数等
The solution to keep the height of the container unchanged during the scaling process of the uniapp movable view table
Django使用MySQL数据库已经存在的数据表方法
Subtotal of process thread coordination
跨模态对齐 20220728
Canal real-time parsing MySQL binlog data practice
Linux Redis 源码安装
Digital currency of quantitative transactions - generate foot print factor data
(perfect solution) why is the effect of using train mode on the train/val/test dataset good, but it is all very poor in Eval mode
【ManageEngine】助力哈尔滨工程大学实现网络流量一体化监控管理
DVWA之SQL注入