GA好望角|魔力宝贝私服|魔力私服|魔力私服|GA反外挂

 找回密码
 立即注册
凤凰(QQ:715837)
售前咨询
GA白皮书(客户端)
GA白皮书(服务端)
cgdev.me开发者论坛
放映地(炫斗魔力公益PK服)
新服发布站
欢迎来到GA好望角~
价格公示表
回首页
查看: 3242|回复: 1

AssetBundle包与服务器全栈功能开发

[复制链接]

131

主题

137

帖子

137

积分

管理员

Rank: 9Rank: 9Rank: 9

金钱
2138
号角币
466
发表于 2021-5-17 12:10:43 | 显示全部楼层 |阅读模式
什么是AssetBundle?

引用Unity概念 AssetBundle是一个数据包 他可以使脚本 也可以使图片等任何数据
利用AssetBundle 我们可以在服务端开发客户端功能 而无需修改客户端

如何开发使用?
1 我们定义使用<? ?> 包含服务端代码
2 使用后 我们可以在服务端混写客户端与服务端代码 无需在客户端ldb中写代码
3 定义以下函数
  • Client.RunScript( player, script)  立刻执行向客户端发送执行脚本命令
  • Client.WaitABRunScript( player,script) 向客户端发送执行脚本命令 该脚本将在所有ab包加载完毕之后执行
  • Client.RunABundle ( player,filename ) 执行一个ab包 本函数会在所有ab包加载完毕之后执行

示例脚本:
以下脚本保存为 test.lua
并在config.lua中 LoadABundle("test.lua");
游戏中使用 /0 即可演示

      
function Myrw_init(view)
    if view.IsInit then           
                view.add(new.bmpbutton("await.change","chajian_btn.bmp"));                  
                return;
    end
        
     -- 异步回调方式调用服务端函数
     local object = view.find("await.change");
    object.enable = 1;
    object.xpos = 130;
    object.ypos = 60;
    object.event = function(object,event)
                        if event == Cevent.click then                                                                
                                <?
                                function unsafe.sayhello(player,tbl)                        
                                        NLG.SystemMessage(player,tostring(tbl[1]))                                
                                end        
                                ?>                                
                                unsafe.sayhello({"早安,熊弟弟"})
                                            
                                <?
                                function unsafe.changeMetamo(player,tbl)
                                        local metamoid = tonumber(tbl[1])
                                        Char.SetData(player,%对象_形象%,metamoid);
                                        Char.SetData(player,%对象_原形%,metamoid);
                                        Char.SetData(player,%对象_原始图档%,metamoid);
                                        NLG.UpChar(player);
                                        return {'已经变身成['..metamoid.."] 真漂亮,快给大家看看吧!!"}                                
                                end        
                                ?>
                                local ret = unsafe.changeMetamo({104870});
                                Cli.SysMessage(tostring(ret[1]),4,3);        
                                        
                        end
                
        end
end

<?
function Client.ShowView(player,id,func)        
        Client.WaitABRunScript(player,"new.ShowView("..id..","..func..")");
end

function Event.RegTalkEvent.Test(player,msg,color,font)
        if msg == '/0' then
                Client.RunABundle(player,'test.lua')
                Client.ShowView(player,501,"Myrw_init")
        end
end
?>




回复

使用道具 举报

1

主题

191

帖子

191

积分

注册会员

Rank: 2

金钱
104
号角币
0
发表于 2022-3-3 18:42:58 | 显示全部楼层
谢谢大佬的辛勤努力,多谢分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|GA好望角

GMT+8, 2024-5-5 05:01 , Processed in 0.057169 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表