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

边栏推荐
- Flink SQL Hudi 实战
- Hilbert transform and instantaneous frequency
- Flink Postgres CDC
- Prometheus 的 API 稳定性保障
- Closures and decorators
- CSDN modify column name
- This article enables you to understand the underlying principle of MySQL- Internal structure, index, lock, cluster
- 了解网址url的组成后 运用url模块、querystring模块和mime模块完善静态网站
- Test / development programmers rely on technology to survive the midlife crisis? Improve your own value
- 全面升级,你能想象的都在这————京东API接口
猜你喜欢
随机推荐
Flask generates image verification code
[MySQL] string to int
Main causes of IT hardware failures and best practices for prevention
js判断 数组/对象数组 1 是否包含数组/对象数组 2
Flink Postgres CDC
Intel带你初识视觉识别--OpenVINO
body中基本标签
【mysql】字符串转int
Textkit custom uilabel identification link
Flask project architecture (First Edition
测试/开发程序员靠技术渡过中年危机?提升自己本身的价值......
Canal实时解析mysql binlog数据实战
RHCE命令练习(二)
Django reports an error using pymsql module django.db.utils.operationalerror
Log4j dynamic loading configuration file
Error installing mysqlclient module on MAC system
Groundwater, soil, geology and environment
Oozie job scheduling
Oozie工作调度
[ManageEngine] what is the LAN monitoring software and what is its function









