lua Utils工具(持续更新)

lua 一些简单工具的封装,方便以后查阅

utils = {}

--点击事件绑定
function utils.addclickevent(go, func, args)
    LuaListener.Get(go, args).onClick = func
end

--拖拽事件绑定
function utils.addonPointerDown(go, func)
    --按下
    DragListener.Get(go).onPointerDown = func
end
function utils.addonPointerUp(go, func)
    --抬起
    DragListener.Get(go).onPointerUp = func
end
function utils.addonDrag(go, func)
    DragListener.Get(go).onDrag = func
end
function utils.addonBeginDrag(go, func)
    DragListener.Get(go).onBeginDrag = func
end
function utils.addonEndDrag(go, func)
    DragListener.Get(go).onEndDrag = func
end
function utils.addchangeevent(go, func, id)
    Util.AddChangeEvent(go, id or 0, func)
end
function utils.addsubmitevent(go, func)
    Util.AddEditEndEvent(go.gameObject, func)
end

-- 拖曳的时候转换坐标用的
-- eventData是拖曳的时候的生成的,类型是UnityEngine.EventSystems.PointerEventData
-- rect_transform是需要转换坐标的的目标rectTransform
-- 最后返回转换后的一个Vector2
function utils.ScreenPointToLocalPointInRectangle(eventData, rect_transform)
    local Vector2 = Util.ScreenPointToLocalPointInRectangle(eventData, rect_transform)
    return Vector2
end

-- 增加spine骨骼动画完成事件回调
function utils.AddSpineEvent(go, func)
    Util.AddSpineEvent(go, func)
end

-- 以异常捕获的方式执行指定函数
function utils.xpcall(func, ...)
    if not LOGGABLE then
        func()
        return
    end

    local ok, msg = xpcall(func, debug.traceback, ...)
    if not ok then
        logerror(msg)
    end
end

-- 获得指定秒数的日时分秒
function utils.second2DHMS(second)
    if second <= 0 then
        return 0, 0, 0, 0
    end
    local d = math.floor(second / 86400)
    second = second - d * 86400

    local h = math.floor(second / 3600)
    second = second - h * 3600

    local m = math.floor(second / 60)
    second = second - m * 60

    local s = second

    return d, h, m, s
end

--设置子物体在服务体位置
function utils.setsiblingindex(trans, index)
    trans:SetSiblingIndex(index)
end

--设置子物体在父物体的最上层
function utils.settopindex(trans)
    local childcount = trans.parent.childCount
    trans:SetSiblingIndex(childcount)
end

--设置指定物体的Postion3D值
function utils.setobjpostion(go, x, y, z)
    if go then
        go.transform.localPosition = Vector3.New(x, y, z)
    end
end

--设置指定物体的激活状态
function utils.setactive(go, ac)
    if go then
        if go.SetActive then
            go:SetActive(ac)
        else
            go.gameObject:SetActive(ac)
        end
    end
end

--判断物体的激活状态,并返回一个bool值
function utils.isactive(go)
    if go then
        return go.activeSelf
    end
    return false
end

-- 组件是否可用
function utils.interactable(com,inter)
    if com then
        com.interactable = inter
    end
end

--添加子物体到父物体上,并设定一个层级位置
function utils.addchild(parent, prefab, index)
    if prefab == nil or parent == nil then
        log("Failed to add child!!")
        return nil
    end

    local go = GameObject.Instantiate(prefab)
    go.transform:SetParent(parent.transform)
    go.transform.localScale = prefab.transform.localScale
  
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
luac转lua工具是用于将Lua源代码从编译过的二进制格式(.luac文件)转换为可读的文本格式(.lua文件)的工具。通常,在编写Lua代码时,我们使用文本编辑器来编写和修改代码。但有时,为了加密和保护代码的安全性,我们需要将代码编译为.luac文件,这样代码将以二进制形式存储,并且只能被luavm解释执行。然而,这种编译的代码不易于阅读和修改。 使用luac转lua工具,我们可以将.luac文件转换为易读的.lua文件。这对于理解、修改和维护代码非常有用。此工具解析.luac文件,并将其反编译为文本形式,使开发人员能够查看代码的实际内容和结构。一旦转换完成,我们就可以使用任何文本编辑器来修改代码,并将其保存为.lua文件。 通常,使用此工具的主要步骤如下: 1. 下载并安装luac转lua工具到你的计算机上。 2. 打开工具,选择要转换的.luac文件。 3. 设置目标文件名和保存位置。 4. 点击转换按钮,等待工具完成转换过程。 5. 一旦转换完成,你就可以使用任何文本编辑器打开保存的.lua文件并进行修改。 需要注意的是,由于.luac文件是编译的二进制文件,转换后的.lua文件可能不会与原始的.lua文件完全相同。某些元信息,如行号和注释,可能会丢失。此外,由于代码的解释执行也可能有所不同,因此在修改代码之前,你应该先进行适当的测试和验证。 总而言之,luac转lua工具是帮助开发人员将编译的.luac文件转换为可读的.lua源代码文件的实用工具,以方便代码的理解、修改和维护。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值