该集视频没有修改Obstacles脚本里的回收方式,导致为下一集视频埋下大坑,本人调试了许久才找到。无语子!!!
该集视频没有修改Obstacles脚本里的回收方式,导致为下一集视频埋下大坑,本人调试了许久才找到。无语子!!!
多看图理解
需要多理解单例的意思,原理还没理解
scenesArgs
static Consts
{
pubilc const string E_ExiteScenes = "E_ExiteScenes"
}
OnLevel
需要在场景跳转时发送事件!
第一个碰撞盒的isTrigger一定别勾选,第二个碰撞盒的 isTrigger一定要勾选上,要不然后面写完小熊跳的时候的向上跳有落回的代码,运行时候就会发现小熊一直在向地下跑,还一直找不到原因
使用where可以设置这个类必须继承哪个物体。
只能被继承的类需要写成抽象的,这样可以保证该类不被实例化。
FramWork部分表示框架层代码
Application
接口只能做方法申明,抽象类中可以做方法申明,也可以做方法实现
对象池
1丶对象池可以减少cpu的使用(减少了使用时生成内存)
2丶对象池要分子池子和总池子
3丶对象池中的物体使用前都需要初始化
4丶对象池中的物体使用完之后要放回去,然后进行数据还原
衣服和皮肤建议不要混在一起,分开做好点
[RequireComponent(typeof(ObjectPool))]
自动添加脚本,在脚本的头部加上该特性,那么给物体挂载该脚本的时候,也会加上ObjectPool脚本!!!必须要是在挂载的时候才会出现,Unity不会对旧的脚本,也就是没加该特性的脚本进行更新,必须remove后再加上去才会生效。
需要巩固的地方:属性和字段的区别
主角(跑)
跑道
障碍物(集装箱、箱子)
掉落物品(金币、)
UI界面(UI之间的交互)
游戏的判定
粒子特效
游戏的数据(静态、动态)
声音管理
对象池(优化内存)