游戏编程框架1
导入strangeioc资源包。
创建空物体,挂demo1contextview脚本。
创建command文件夹。
创建脚本scoremodel和iscoreservice,创建脚本scoreservice和cubeview,挂给cube。
把canvas做成3D空间,父物体给cube。
3D空间UI要把主摄像机给到canvas的event camera。
创建cubemediator脚本。
创建脚本requestscore。
创建脚本demo1commandevent。
创建脚本demo1serviceevent。
创建脚本demo1mediatorevent。
十分注意监听和派发的顺序。
这里注意全局和局部派发器的分开使用。
创建framwork文件夹,下面创建Editor。
创建Audio放在resources文件夹下面,里面导入音效。
framwork下面创建resoureces文件夹,里面存放音频文件信息。
framework文件夹下创建scripts文件夹下面创建manager文件夹下创建audiomanager脚本用来管理。
但是由于窗口会变成一条直线,所以直接用的写好的代码。
在context里面进行一层audiomanager的绑定。
在这里进行音频管理类的注入和初始化。在audiomanager前面加public,
在cubeview里面注入类和播放声音。
创建对象池列表的方法,在manager里面点create config,
然后可以把预制件拖过去,设置参数。
名字要和预制件的名称一样。
也可以把特效拖过去。
framework下面的scripts文件夹下面创建pool把对象池的脚本放进去。
poolmanager使用传统的单例模式,如果用stangleioc绑定单例的话,频繁调用会频繁注入,耗费大量性能。poolmanager里面写init方法,在startcommand的execute里面调用。
在cubeview里面调用实例化预制件,点击左键即可创建。当物体被禁用后再次点击会启用禁用的物体。
可以给预制件挂一个脚本,用来控制他的存在时间
framework-resources下面创建localization文件夹用来本地化。
在这个文件夹里面用文件管理器创建两个txt,分别是chinese和english。
创建两个按钮,分别是开始和退出。
为了在编辑器中显示文本文件的中文,在vs的文件-高级保存选项里(自己搜索添加)选择UTF8。
在startcommand里进行本地化管理脚本的初始化。
给按钮的text挂上localizationtext脚本,给上key。
如果要切换中英文版本的话,直接在localizationmanager里面修改string language。
文本文件里只需要左边写通用key,右边写对应语言的value。
fwork-scripts下面创建文件夹FSM?。
创建两个胶囊提,分别命名为player和npc,添加刚体,冻结x. z轴旋转。
给npc挂上NPCcontrol脚本,放在外界的scripts文件夹里面。
创建空物体,作为路径点,给到npc control。
给player标签,然后在npccontrol里面获取。
把protobuf net里面的dll导入到frwork-plugins里面
创建文件夹protobufnet
把testprobuf挂给空物体,即可在asset目录下生成user文件,需要刷新。
testprotobuf脚本里面写的是序列化过程
这个是反序列化过程。就是把二进制读取成字节的过程。