ToLua(LuaFramework) - Tolua 中加载单个预制体Prefab(二)

前面一篇文章中,我们讲到了 如何使用 Tolua 框架去加载一个面板(Panel),但是这个方法不是很适用于我们加载单个的 Prefab 资源,所以在这套框架中我们还有其他的一些套路。

先关闭LuaBundleMode
先关闭LuaBundleMode
先关闭LuaBundleMode
在这里插入图片描述
1、首先我们新建一个 Prefab 出来,将它放在 LuaFramework 下边儿的 UI 里边,
在这里插入图片描述
2、处理 C# 中的 Packager 中的 HandleExampleBundle()方法,
在这里插入图片描述
这里说一下 这个地方的 packager . HandleExampleBundle()方法中调用到的 AddBuildMap()方法的重载
(1)第一个是包名,即打包后在StreamingAssets目录中显示的包的名称,AppConst.ExtName是扩展名,框架默认为".unity3d",可以自行修改;
(2)第二个参数是打包模式,以字符串形式过滤出要打包的文件名,比如这里*.prefab就表示源目录下的所有prefab文件。
(3)第三个参数是要打包的资源的目录,暂且称为源目录;
注意:在这个地方需要注意的是单个资源和多个资源的打包:
1、如果打包一个资源一个预制件的时候,那么就是直接将资源名称填到第一个参数里边,然后第二个参数不变,第三个参数直接就是资源的父级文件夹。
2、如果说需要打包多个资源的话,那么第一个参数传递的就直接为 我们父级的文件夹名称,注意的是需要小写,然后第二个参数依然是不变的,第三个参数传递的依然是打包的资源目录

为了验证我我们到底是否成功的进行了打包,所以这里有一个办法可以进行鉴定:
打开我们的资源管理器:
在这里插入图片描述
在这里插入图片描述
使用记事本打开我们刚刚创建出来的 uipanel.unity3d.manifest 文件;你可以看到如下:
在这里插入图片描述
这个地方是有两个 .prefab 文件的,那么这样就验证了我们打包 ab 包成功。
3、资源包有了以后我们就是需要在 代码中 去动态的进行加载了。
打开我们上一篇文章中创建的那个 MainPanelCtrl lua 脚本,然后
作如下更改:

MainPanelCtrl = {};
local this = MainPanelCtrl;

local message;
local transform;
local gameObject;

-- 构建函数--
function this.New()
    return this;
end

function this.Awake()
    panelMgr:CreatePanel('Main', this.OnCreate);
end

-- 启动事件--
function this.OnCreate(obj)
    gameObject = obj
    transform = obj.transform
    message = gameObject:GetComponent('LuaBehaviour')
    --ui.unity3d资源包
    resMgr:LoadPrefab("ui.unity3d", 
    {
        "Img_List",
        "Btn_StartPlay"
    },
    function(ui)
        log(ui.Length); -- 输出 1
        log(ui[0].name) -- 输出 Img_List
        local go = newObject(ui[0]) -- 实例化
        local btn = newObject(ui[1])
        go.transform:SetParent(transform) -- 设置父对象
        go.transform.localPosition = Vector3(-300,70,0)
        btn.transform:SetParent(transform)
        btn.transform.localPosition = Vector3(-290,-200,0)
    end);
end

最后成功加载
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值