当前位置: 首页 > news >正文

unity简易lua文件迁移工具

一. 了解商业游戏的Lua热更新开发方式

市面上的3种结合Lua热更新的开发方式
1.纯Lua开发(所有的游戏主要逻辑都用Lua实现)
好处:机动性强;坏处:代码效率略差

2.半C#,半Lua开发(核心逻辑C#开发,业务逻辑Lua开发)
好处:性能略好;坏处:机动性略差

3.xLua热补丁(纯C#开发,后期加口入xLua热补丁,不建议)
好处:解燃眉之急;坏处:破坏项目稳定性整体性

二. VS插件

Chinese
c#
c# XML Documentation Comments
Debugger for Unity
Unity Tools
UnitySnippets
Auto_Using for C#

三. Lua迁移工具代码

using System.IO;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;public class LuaCopyEditor : Editor
{[MenuItem("XLua/自动生成txt后缀的Lua")]public static void CopyLuaToTxt(){//首先要找到 我们的所有Lua文件string path = Application.dataPath + "/Lua/";//判断路径是否存在if( !Directory.Exists(path) )return;//得到每一个lua文件的路径 才能进行迁移拷贝string[] strs = Directory.GetFiles(path, "*.lua");//然后把Lua文件拷贝到一个新的文件夹中//首先定一个新路径string newPath = Application.dataPath + "/LuaTxt/";//为了避免一些被删除的lua文件 不再使用 我们应该先清空目标路径//判断新路径文件夹 是否存在if( !Directory.Exists(newPath) )Directory.CreateDirectory(newPath);else{//得到该路径中 所有后缀.txt的文件 把他们全部删除了string[] oldFileStrs = Directory.GetFiles(newPath, "*.txt");for (int i = 0; i < oldFileStrs.Length; i++){File.Delete(oldFileStrs[i]);}}List<string> newFileNames = new List<string>();string fileName;for(int i = 0; i < strs.Length; ++i){//得到新的文件路径 用于拷贝fileName = newPath + strs[i].Substring(strs[i].LastIndexOf("/")+1) + ".txt";newFileNames.Add(fileName);File.Copy(strs[i], fileName);}AssetDatabase.Refresh();//刷新过后再来改制定包 因为 如果不刷新 第一次改变 会没用for (int i = 0; i < newFileNames.Count; i++){//Unity API//改API传入的路径 必须是 相对Assets文件夹的 Assets/..../....AssetImporter importer = AssetImporter.GetAtPath( newFileNames[i].Substring(newFileNames[i].IndexOf("Assets")));if(importer != null)importer.assetBundleName = "lua";}}
}
http://www.lryc.cn/news/424185.html

相关文章:

  • Elasticsearch中的自动补全功能详解与实践
  • 前端如何使用Nginx代理dist网页,代理websocket,代理后端
  • Cannot connect to the Docker daemon at unix:///var/run/docker.sock. 问题解决
  • 零基础学习Redis(2) -- Redis安装与配置
  • UniApp第一天
  • TLE4966-3G带方向检测功能的高灵敏度汽车霍尔开关
  • Github 2024-08-14 C开源项目日报Top10
  • 飞桨Paddle API index_add 详解
  • 后端代码练习1——加法计算器
  • 观察者模式和MQ是什么关系
  • JDK动态代理和CGLIB动态代理案例分析
  • 【数据结构-前缀哈希】力扣1124. 表现良好的最长时间段
  • 电商平台产品ID|CDN与预渲染|前端边缘计算
  • LATTICE进阶篇DDR2--(4)DDR2 IP核总结
  • windows下php安装kafka
  • 【wiki知识库】09.欢迎页面展示(浏览量统计)SpringBoot部分
  • 数据分析与应用:微信-情人节红包流向探索分析
  • SQL,获取 ID 的历史状态
  • 阅文集团:摇不动的IP摇钱树
  • ETL数据集成丨将SQL Server数据同步至Oracle的具体实现
  • 20240814软考架构-------软考51-55答案解析
  • JavaEE 的入门
  • vue3+ts 前端word文档下载文件时不预览直接下载方法(支持 doc / excel / ppt / pdf 等)
  • Java 空值与null 形参与实参学习
  • 【QT常用技术讲解】QTableView添加QCheckBox、QPushButton
  • linux监控命令
  • SpringBoot入门笔记
  • python 华为od 单词接龙
  • Vue+Echart实现地图省市区三级下钻
  • Apache Tomcat 信息泄露漏洞排查处理CVE-2024-21733)