物理游戏
物理游戏
1.屏幕坐标与世界坐标的转换
2.Spring Joint 组件的使用
3.碰撞检测(OnCollisionEnter2D)
4.Line Renderer等等
1)碰撞检测
两个都要挂载 rigibody 和碰撞盒
2)ontrig检测
其中一个挂载rigibody
勾选isTrig
ff
在Sprite Renderer中修改小鸟和弹弓的层级关系,使得小鸟可以自由飞出(不被弹弓遮住)。
原来还有小姐姐
2D工程
Scenes场景
导入资源
Sprite Mode->Multiple+Apply->Sprite Editor
Slice->编号->Apply
Sprite Renderer->Sorting Layer->Order in Layer
老师我的第二个和第三个鸟不会上弹弓 他们只会原地爆炸。。。
感觉上是弹簧组件没有被使用,我照着资源对照了一遍也还是没有发现问题
当鼠标按下时允许两个物体分离,但是这个时候鸟不能飞出(初速度太小,不符合实际),等待一段时间Invoke("function",time value)再将鸟射出sp2d.enable = false。
给小鸟增加一个碰撞体(circle),增加一个脚本(birds)add component,新建一个文件夹scripts,将birds拖进文件夹中。
要解决问题:
1、何时操作技能?
小鸟在飞行中才能能过鼠标左键按下触发技能,起飞前和碰撞到物体后都不能触发技能
① 左键按下:GetMouseButtonDown(0)
② 是否在飞行中: private bool isFly
2、代码重用
① 在原来的 Bird.cs 脚本中增加 虚方法 ShowSkill() ,在需要增加技能的小鸟上重写该方法
② 在子类中重写父类中的虚方法时,如果要调用父类中的字段,父类的中的该字段用 protected 签名,这样外界看不到,但是子类中可以调用
携程
IEnumerator
yield return new WaitForSeconds(0.2);
ctrl + d复制
ctrl+6 动画
音乐的添加
1、使用 AudioClip 定义声音片断
2、使用 AudioSource.PlayClipAtPoint(AudioClip clip, Vector3 position) 播放声音,不会因为物体的消失而导致声音戛然而止
相机跟随小鸟
1、获取小鸟的位置,此处只需要 x 坐标
2、将小鸟的 x 值限定在一个范围内, 然后把值给相机,使相机在该范围内跟随
3、使用线性插值使相机平滑跟随Vector3.Lerp((Vector3 a, Vector3 b, float t)
方法介绍:http://blog.csdn.net/qq_26999509/article/details/53608119
4、限制范围使用
Mathf.Clamp(float value, float min, float max)
1. 重新开始游戏,引入命名空间:UnityEditor.SceneManagement
2. 给按键添加 Button 组件
3. 在GameManager 中增加重玩(Replay)方法、回主页(Home) 方法
4. 给按钮注册事件
5. 给 PausePanel 增加脚本,为 PausePanel 上的按钮添加方法
6. 给动画挂载鼠标事件
添加暂停动画
1、颜色渐变:UI 的 Color.a 属性
2、要移动物体的 Anchored Position 属性
渲染层级:
1、Camera
Depth:先绘制 depth 低的物体
2、同一个 Camera
Sorting layer:数值大的挡住小的
3、同一个Sorting layer
Order in layer:数值大的挡住小的
小鸟的拖拽效果:
spring joint2D 弹簧连接组件是挂在小鸟身上的,涉及两个刚体,另一个是右边的树枝
点击bird->Add Component->spring joint2D
right->Add Component->Rigidbody 2D
->Body Type->Static,不希望right受重力,
Auto Configure Distance 取消勾选
Frequency改数值