使用Lua 对文件进行读写修改

        Unity项目中遇到一个目录下的所有材质的RenderQueue需要批量修改,写一个脚本批处理这个东西,也许以后还会用到。正好项目用到lua有环境,就用lua写了。

--读文件并处理满足条件的一行

function Condition(line)
    return string.find(line,"m_CustomRenderQueue") ~= nil
end

function HandleLine(line)
    return "  m_CustomRenderQueue: 3010"
end

function HandleFile(name)
    local file = io.open(name, "r") --Read 
    local lines = {} 
    local restOfFile 
    for line in file:lines() do 
        if Condition(line) then --Condition
            lines[#lines + 1] = HandleLine(line) --Handle
            restOfFile = file:read("*a") 
            break 
        else 
            lines[#lines + 1] = line 
        end 
    end 
    file:close() 

    file = io.open(name, "w") --Write 
    for i, line in ipairs(lines) do 
        file:write(line, "\n") 
    end 
    file:write(restOfFile) 
    file:close() 
end

--调用HandleFile处理文件
for i = 1,9 do
    HandleFile("Aerocraft_00"..i.."\\Materials\\".."Aerocraft_Alpha_00"..i..".mat")
end
for i = 10,99 do
    HandleFile("Aerocraft_0"..i.."\\Materials\\".."Aerocraft_Alpha_0"..i..".mat")
end

可能存在性能问题,在文件不多的时候可以忽略,拼文件名也可以用更优雅的写法,先这样吧,解决问题了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值