1.属性动画
当只有一张图片,要制作简单动画片段时,可以先添加属性参数,在自己添加的关键帧的位置对属性值进行不同的修改(比如这里的是将大小尺寸做了个逐步减小再增加回来的过程),调整播放帧率之后,就可以生成一段简单的,物体再原地看起来很Q弹的效果动画
2.音效添加
音效添加主要涉及到(AudioSource)、音效收听者(AudioListener)和音效的播放模式(循环||播放一次。。 等等)LIstener和Source之间的距离会影响到玩家听到的声音大小,这里因为是2D游戏,并且对主角进行了camara的追踪,这样就只需要再camara上挂一个Listener,就大致可以实现随着角色移动,玩家也可以实现听到的声音随着距离其他Source的远近,合理变化。
Source像是个播放音频的组件,可以播放AudioClip,使用的方法和其他组件一样,先在对象上挂组件,再在脚本上声明对象,对象调用封装好的方法,实现不同方式的播放
3.简单任务系统
这里只添加了一个简单的任务,修好地图上的机器人(但感觉任务这个东西,其实也只是一种信号传递,也是玩家触发了设定好的“完成任务”的开关(bool),然后有方法对这个消息进行反馈就好了),这里用到一个计数器,计数器超过或等于地图上的机器人数量,则IsComplete为true,用这个IsComplete来控制任务完成反馈的函数(金钱、经验奖励等等)。
这里需要注意一下,任务的计数器最好是放在发布任务的NPC身上,不能放在任务对象身上。虽然任务对象上挂了一样的脚本,但是执行是分开的,比如设置个计数器从0开始,触发之后++,把计数器的值返回;运行时会发现,计数器只会到1,也就是每个对象被触发之后,都执行了一遍0->1,而没有++。
但从感性的角度考虑,相当于NPC是督工,他给你干的活进行计件,所以计数器放他身上也比较合理。
4.静态类
static的优点是什么?为什么要使用static 变量或函数??
有一些频繁使用的东西,如果你每次使用都重新new
一下,那么这个开销可能会很高,如果使用static
,一直放在内存中,那么想用就直接用,而不需要重新new
一块空间初始化数据。那么static
就是为了实现一个系统的缓存作用的,其生命周期直到应用程序退出结束。
静态成员包括静态字段和静态属性,静态成员和类相关联,不依赖于对象而存在,只能由类访问,而不能由对象访问;
静态成员属于类所有,无认创建多少实例对象,静态成员在内存中只有一份;实例成员属于类的实例所有,每创建一个实例对象,实例成员都会在内存中分配一块内存区域。
所以静态成员一般用于存放共享的数据段,如数据库连接字符串等。
一个类如果只包含静态成员和静态方法,则该类可以定义为静态类,给类加上static
修饰符;
静态方法和非静态方法:
一、性能上:静态方法和实例方法差别不大。所有方法,不管是静态方法还是实例方法,都是在JIT加载类时分配内存,不同的是静态方法以类名引用,而实例方法对对象实例引用。创建实例时,不会再为类的方法分配内存,所有的实例对象共用一个类的方法代码。因此静态方法和实例方法的调用,在性能上的差别微乎其微。
二、静态方法只能由类访问;实例方法只能由对象访问。
优点:
1,静态变量在类载入时,就装入内存
2,使用时不用 New 就意味的不必 创建类中 所有对象,就可以调用 某个方法缺点:
1,垃圾回收机制 不能 回收 静态变量,静态类变量 会常驻内存
c#中静态类的优缺点
缺点:
1、整个类型在程序运行期间只加载一次。 这样是对于那些经常使用的类型来说的,那就不用每次使用前都先加载。效率高些。但是对那些不常用的类型来说。
2、如果是静态类型,那就要一直占用相当的内存;一直到程序停止。或者应用程序域被卸载。所以应该只对那些常用的类型定义成静态类型。
优点:
1、它们仅包含静态成员。
2、它们不能被实例化。
3、它们是密封的。
4、它们不能包含实例构造函数(C# 编程指南)。
因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。
使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。
静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。
转自:https://www.cnblogs.com/5440yan/p/4923282.html
这次在HealthBar上用到了静态,理解应该是把血条的值始终保存在内存,修改血条值的方法也是静态,所以只使用固定的一块内存,性能上稍好一点
至此,Ruby'sAdventure的Demo完成,后面觉得可以继续添加东西上去,比如显示主角位置和道具位置的小地图,切换场景的传送门等,后续继续学习。
小白做笔记用,谨慎参考,欢迎批评指正,谢谢