-
Notifications
You must be signed in to change notification settings - Fork 3
Reference
游戏流程的控制模块
服务器模块的控制模块
在GameMgrModule的Init()函数中加入服务器模块的初始化函数
YourServerModule:Init()
在GameMgrModule的Update(dt)函数中加入服务器模块的Update函数
YourServerModule:Update(dt)
客户端模块的控制模块,初始化及Update函数用法可参考GameMgrModule
框架没有默认执行GameMgrModule
和PlayerMgrModule
中的Update函数,需要进行手动添加
打开World->S_Code->ServerMain ,加入如下代码:
invoke(
function()
GameMgr:StartUpdate()
end
)
打开Archetype->Player->Local->C_Code->PlayerMain,加入如下代码:
invoke(
function()
PlayerMgr:StartUpdate()
end
)
存放在Module->S_Module下的模块
存放在Module->C_Module下的模块
打开World->Global->ModuleRequireScript
YourModule = require(_yourModuleFolder.YourModule)
EventUtil.LinkConnects(_eventFolder,_module, _moduleName,_this)
参数 | 描述 | 类型 |
---|---|---|
_eventFolder | 事件所在的节点folder,框架中服务器端为world.S_Event,客户端为localPlayer.C_Event | Object |
_module | 模块 | Object |
_moduleName | module的名字,用于打印日志 | String |
_this | module的self指针,用于闭包,通常不用更改 | Object |
事件名+'Handler'
YourModule:YourCustomEventHandler()
InitListener()中使用Connect绑定
NetUtil.Fire_S(_eventName, ...)
NetUtil.Fire_C(_eventName,_player, ...)
框架内置了向客户端广播的函数
NetUtil.Broadcast(_eventName, ...)
在S_Module->GameCsvModule和C_Module->PlayerCsvModule中包含了读表的操作。
将.csv
文件存放在World->Global->Csv目录下
在GameCsv.PreLoad
或者PlayerCsv.PreLoad
下添加对应表的信息,这个表会在模块初始化时预读。
服务器端调用方法为:GameCsv.YourTableName
客户端调用方法为:PlayerCsv.YourTableName
在框架的Utility目录下实现了ObjPoolUtilModule
创建对象池的方法为ObjPoolUtil.Newpool(String _folderName,_objName,_maxCount)
参数 | 描述 | 类型 |
---|---|---|
_folderName | 世界下的目录名称,用于对象池目录的管理 | string |
_objName | 对象名称,在Archetype下应存在同名对象 | string |
_maxCount | 对象池的最大上限,超过此上限将会销毁 | int |
这个方法会返回一个对象池,故用法通常为:
local YourPoolName = ObjPoolUtil.Newpool(String _folderName,_objName,_maxCount)
YourPoolName:Create(_position,_rotation)
参数 | 描述 | 类型 |
---|---|---|
_position | 创建对象位置 | Vector3 |
_rotation | 创建对象角度 | EulerDegree |
这个方法会返回创建的对象
YourPoolName:Destroy(_obj)
参数 | 描述 | 类型 |
---|---|---|
_obj | 要销毁的对象 | Object |
框架中自带了一些Debug工具,这些Debug有多个输出级别可以选择,他们在全局定义中已经被定义了,可以在脚本中直接使用。
方法 | 描述 |
---|---|
test() |
测试用的输出 |
debug() |
主要用于开发过程中打印一些运行信息 |
info() |
用于生产环境中输出程序运行的一些重要信息 |
warn() |
表明会出现潜在错误的情形 有些信息不是错误信息 但是也要给程序员的一些提示 |
截至1.1.1版本,框架实现了让摄像机在水平面上转动到和角色朝向一致的角度的功能。
CamUtil.ToRoleForward(_player, _cam, _time)
参数 | 描述 | 类型 |
---|---|---|
_player | 摄像机看向的物体 | PlayerInstance |
_cam | 转动的摄像机 | Camera |
_time | 转动过程的时间,不填则瞬间转动 | number |
框架中实现了音效的播放模块,需要在World->Csv下的Sound表中进行音效的添加,然后使用SoundUtilModule中的方法:
SoundUtil:PlaySound(_ID, _SoundSourceObj)
参数 | 描述 | 类型 |
---|---|---|
_ID | 音效的ID | int |
_SoundSourceObj | 音效挂载物体,不填则为2D音效,挂载在主摄像机上 | Object |
工具模块中提供了类似C#双向链表的模块,可以查看Wiki或者程智的Github仓库
Davinci - API Reference - Forum - ©copyright Lilith Games, Avatar Team