lua


用途

由于abtool预置丰富的lua类型绑定,通过该命令允许你在不修改源码的情况下做一些个性化的任务。

参数

参数 缩写 描述
--type -t 设置该命令加载的资源类型ID,默认为0,表示加载所有类型的资源
--file -f lua脚本路径,默认:abtool.lua

通过该命令可以执行lua脚本文件,并且在脚本中可以访问如下几个全局变量:

  • archive

    archive绑定了当前lua脚本处理中的assetbundle::AssetBundleArchive对象

  • file

    file绑定了当前lua脚本处理中的assetbundle::SerializedFile对象

  • directory

    directory绑定了assetbundle::DirectoryInfo对象,如果需要访问archive中其他文件对象,可以通过方法directory:load([path])进行文件加载

其他lua绑定接口可以查看以下两个文件:

  1. abtool/luatypes.cpp

    该文件绑定了与assetbundle::AssetBundleArchiveassetbundle::SerializedFile有关的数据结构以及接口。

  2. abtool/assetbundles/unity/luatypes.cpp

    该文件绑定了所有Unity资源对象的数据结构。

示例

abtool lua artresource_environment_scene_logicmesh_small_checkerboard.god
so = file:find(7397932659350227505)
file:dump_object(7397932659350227505)
ptr = castMaterial(so.object) -- std::shared_ptr<Material>
mat = ptr:get() -- Material*
mat.m_Shader.m_PathID = 0
mat.m_Shader.m_FileID = 0
file:dump_object(7397932659350227505)
builder = assetbundle.ArchiveFileBuilder(archive) -- assetbundle::ArchiveFileBuilder
builder:save("hijack/artresource_environment_scene_logicmesh_small_checkerboard.god")

results matching ""

    No results matching ""