1.spring joint 2D组件
弹簧关节。就是弹弓上伸缩弹性的绳子,添加组件会自动加一个刚体组件,把这个组件加在小鸟身上
2.弹弓添加刚体组件Rigibody 2D,把Body Type 改成static,意思是只让他挂组件,不让他受重力
--世界坐标是以屏幕中心为原点,左负右正,下负上正
--屏幕坐标是以屏幕左下角为原点上正下负 ; 屏幕坐标转世界坐标ScreenToWorldPoint();
3.小鸟的拖拽
在小鸟身上加上spring joint 2D组建后,写脚本。
写好后发现小鸟不会出现在屏幕上,因为小鸟现在是世界坐标,我们看到的是屏幕坐标,需要进行转换,同时固定好z轴。
4.小鸟拖拽最大距离的限制
如下图,我们需要弹弓绳这个被限制的向量(有方向有长度),长度就是A(小鸟的位置)减去B(原点的位置), 当我们需要的是方向,因为长度(maxDis)我们可以自由设置
5.小鸟飞出操作
就是让spring joint 2D组件失活
先获取spring joint 2D组件
然后让鼠标松开就把组件false掉
6.猪死亡爆炸特效
准备工作:选中素材中的几张爆炸图片拖到层级窗口做成动画后,把它做成预制体(命名为boom)。
可以在boom上添加个脚本写个destory()方法,在他动画最后一帧上添加个事件,选择上destory()方法,用来销毁。(爆炸后自动销毁)。
也可以不写脚本,设置让它在多长时间后销毁。
在猪的代码中public GameObject Boom,(别忘了在unity中把boom拖进去)
在猪死亡时,Instantiate一下boom'即可。
7.
实现多只小鸟
①. 先在场景中Ctrl+d复制出多只小鸟
②. 然后新建一个空物体用来管理小鸟,取名gamemanager',先获取到多只小鸟,用List。piblic List<Bird> birds; 在获取到猪。(因为建的是List集合,所以在unity中要把小鸟按顺序拖进gamemanager'中的birds中)
③. 写一个方法(instance)让除了第一只小鸟以外的鸟 spring joint 2D组件和bird脚本组件失活
写一个方法用来判断游戏逻辑,只要猪的数量小于零就胜利,否则下一只小鸟飞
④. 写一个方法控制下一只小鸟的飞出,先调用第一支小鸟的方法,把他remove掉。GameManager._instance.birds.Remove(this),然后调那个逻辑方法。
5.添加失败、胜利界面
先新建一个UI的Image,把胜利win、失败lose界面搭建好,然后给这个界面添加(Ctrl+6)一个动画,选一个color,实现一个由明到暗的效果
控制color中a的值设置明暗
把失败和胜利的界面建好后,在GameManager中写一个显示星星的方法(GameManager控制总逻辑,赢了还是输了),在胜利界面下建一个脚本用来显示星星,调用GameManager中的显示星星方法
在胜利动画最后一帧创建一个事件,把现实星星的函数放心去
一切准备就绪后,在GameManager中控制这两个界面的显示,先获取
默认这两个界面都是关闭的,所以只需要在胜利/失败后激活它们即可
最后在GameManager中设置一下
胜利的界面会有三课星星,根据剩余的小鸟数量获得星星。
实现i星星一颗一颗的显示
建个数组接收一下星星
然后再写个携程让星星一颗一颗的显示
6.添加鼠标注册事件
就是给“重新开始”、“返回菜单”添加事件。
画好UI后
给这两个Image添加Button组件,选中写好的方法(方法写在GameManager中)
7.选择关卡
先搭好UI
关卡需要指定数量星星开启,所以需要存储星星的数量用unity自带的(键值对存储,一个键对应一个值)
开启关卡的游戏逻辑(存储星星数量大于关卡所需数量)
8.每个小关卡
画UI添加一个Grip组的组件管理每个小关卡间距、行高什么的
写脚本控制每一关的选择
大关卡与小关卡的交互
标签:星星,小鸟,GameManager,Unity,添加,组件,关卡,愤怒 From: https://www.cnblogs.com/jiangfc/p/17305480.html