新建一个摄像机,命名为 UI Camera
修改 Culling Mask 为 UI
Clear Flags 修改为 Depth only 这样两个摄像机就能够融合显示
将Root 例子改成 UI层,作为 Canvas 下面,然后将例子的 render 的 sorting layer 改成最高层,将root
新建一个摄像机,命名为 UI Camera
修改 Culling Mask 为 UI
Clear Flags 修改为 Depth only 这样两个摄像机就能够融合显示
将Root 例子改成 UI层,作为 Canvas 下面,然后将例子的 render 的 sorting layer 改成最高层,将root
渲染层级关系
1. Camera
Depth 深度 决定渲染顺序,先绘制 depth 低的物体(使用与多个摄像机渲染排序)
2.同一个 Camera
sorting layer sorting 层大的先渲染遮挡 sorting 层小的
3.同一个 Sorting 层
Order in Layer :order 大的遮挡住 order 小的
将 Canvas 的render mode :修改为 Screen space
修改例子火花系统
start Lifetime 0.5
startsize:1.5-2
制作 Lose 界面UI
添加一个UI ,Image,填充满屏幕,设置透明度降低,添加一个渐隐的动画
在添加一个Image 放在中间,上下充满,,在这个 Image 下面添加一个 Button 按键,分别为重新开始和home 键
中间放一个Pig
制作 Win 界面UI
和失败基本相同,将猪换成
动画状态机和动画需要复制一份
给Win 添加一个脚本
整合场景,解决无法显示画线弹弓的问题
添加几个木块
Block 方块 添加 Collider 和 rigidbody2d以及Pig脚本,调整受伤和消失的数值
添加受伤的图片
添加死亡获得的分数
制作成预制体
然后后面的就更换图片就可以了
但是石头的话将 Rigidbody 中的 Mass 改成3
坚硬程度也要比其它的高
加背景
添加草
修改层级,优化遮挡关系
解决画线和武器拖尾的隐藏问题,就是将Default 层更改为 -1,或者背景层的Z轴稍微修改以下
添加小鸟废除的拖尾动作
导入尾迹拖尾的插件包
1.给小鸟添加Test MyTrail 的脚本
2.给小鸟添加子物体,trail,然后给小鸟添加 weapon Trail 和 Mesh render 组件,并添加 weapon trail 材质球
3.修改
修改Height为0.
修改time 为 0.3
游戏逻辑的判定
场景中小鸟剩余的个数大于猪的数量我们就赢了
复制 bird 为三只
设置GameManager管理我们的小鸟
新建空物体作为 GameManager
public List<Bird> birds;
public List<Pig> pigs;
现在确定逻辑,当我们第一支小鸟还没有飞的时候,后面的小鸟的 Spring Joint 2D 和 Bird 组件要禁用
死亡和加分特效
重新分配裁切大小
弹弓的画线操作
给左边的树枝添加一个空物体
添加一个组件 Line Render 组件
给右边的树枝的空物体添加一个 Line Render 组件
然后我们需要在脚本中对画线组件进行操作
猪的受伤
给猪添加脚本
碰撞监测
private void OnCollisionEnter2D(Collision2D collision)
{
if(collision,relativeVelocity.magnitude>maxSpeed)
}
private void OnTriggleEnter2D(Collider2D collision)
{
}
public float maxSpeed=10;
public float minSpeed=5;
小鸟的飞出
拖拽最大距离的限定
在right 树枝下面新建一个子物体,命名为 originPos
小鸟的拖拽
给小鸟添加碰撞体
小鸟拖拽的实现
spring joint 2D 组件 弹簧二维关节组件
joint that attempts to keep Rigidbody2D object a set distance apart by applying a force between them
关节尝试给两个具有 2D刚体组件的物体施加一个力,使其保持一定的距离
2D
sprite Mode : MUTIPLY
场景的搭建
单位化向量,只保留方向,
利用有方向的向量来判断小鸟的最大拖动值.
第一点,
1. 小鸟之前是世界坐标,坐标系转换
GameManager的使用: