04 2021 档案
摘要:一.简介: 有今天这篇博客是因为最近在做一个lua版的象棋游戏(忽略lua效率不高这件事),在做游戏的PVE功能的过程中需要实现一个简单的象棋AI,于是对于象棋AI进行了一番研究,研究的主要资料来源于象棋巫师。下面的内容也主要是对于最大最小算法和AlphaBeta算法理解的一个记录。对于棋类AI,目
阅读全文
摘要:lua中使用元表并指定元表的__index来模拟实现了类和对象,下面是一个我觉得比较好用的class方法,用来模拟实现类的继承,这个在我之前的博客中也有提及: function class(classname, super) local cls if type(super) ~= "table" t
阅读全文
摘要:一.简介: 最近在做一个lua版的象棋(使用lua也没有考虑性能的问题,主要是想练习一下lua的使用),在象棋的PVE模式玩法中,AI的落子处理打算采用经典的alpha-beta算法(之后的博客会详细记录),采用这种算法的棋类游戏AI的核心是对象棋局面的评估(打分),以便AI能自己计算每种走法得到的
阅读全文
摘要:如题,在使用lua模仿类和对象的过程中,对象会被置空和创建。由于对象和模板类实际上是lua中的两个表,类表是对象表的元表,所以在实际使用过程中,对对象中的一些值得修改有时实际修改的是元表中的值,当对象被销毁后再次创建对象时就会出现问题,因此在创建对象时需要将类表中的变量全部重置一遍,而且推荐一个类只
阅读全文
摘要:function class(classname, super) local cls if type(super) ~= "table" then super = nil end if super then cls = {} setmetatable(cls, {__index = super})
阅读全文
摘要:一.简介:今天在网上找框架时,发现了一个使用lua实现的开源PureMVC框架,于是便分析了一下使用方法,以便在自己的项目中可以尝试使用。框架相关的博客地址:https://blog.csdn.net/u012740992/article/details/103674426;框架的源码地址:http
阅读全文
摘要:在使用xlua编程热更新项目时,如果需要使用DoTween动画插件该如何去设置呢?今天就遇到了这个问题,将解决方案记录在这里: DoTween通过添加拓展方法的方式为Unity本身的类或对象添加了许多方法,这些方法使用DO、Set、On等开头,不同开头的方法都有特定的作用。xlua要识别DoTwee
阅读全文
摘要:一.简介 Unity工程完成后,常常出现安装包大的问题和运行卡的问题。性能优化就是尽量解决这两方面的问题。 二.DrawCall概念 在游戏运行过程中,CPU通过调用图形库接口(DirectX/OpenGL),向GPU传达渲染命令。CPU对图形绘制接口的调用就是DrawCall。一方面CPU在调用图
阅读全文
摘要:一.tolua使用准备工作:从GitHub上下载tolua(说明:这篇笔记使用的Unity版本是2019.4.18f1c1,使用的tolua是2021年4月9日从GitHub上Clone的tolua工程文件,没有下载release版本,使用的ide为vscode) 1.在GitHub上搜索tolua
阅读全文
摘要:一.简介 对于xlua热更新项目来说,如果是已经使用C#做好的项目,可以使用hotfix补丁的形式对C#方法进行覆盖,使项目具备热更新功能,但是如果是没有开始实现的项目,要想具备热更新功能,完全使用lua实现可能更加方便维护。从另一个方面来说,一个项目如果全部使用lua实现游戏逻辑,游戏的运行速度肯
阅读全文
摘要:一.简介 在Unity中,使用AssetBundle Browser打包时,这个工具无法识别.lua后缀的文件,lua代码无法直接打包。我们可以为lua文件添加上后缀.txt以修改lua文件格式的方式解决这个问题,文件内容不会修改。但是对于一个项目,lua文件非常多,这时显然一个一个修改太过于麻烦,
阅读全文
摘要:一.热补丁简介 热补丁主要是用于将纯C#工程在不重做的情况下通过打补丁的形式改造成具备lua热更新功能工程,主要是让原来脚本中Start函数和Update函数等函数代码块重定向到lua代码。 二.第一个热补丁 1.C#代码端: 1)创建一个脚本,并挂载到游戏中的任意物体上(实际使用过程中一般修改已有
阅读全文
摘要:一.热更新方案简介 在Unity游戏工程中,C#代码(编译型语言)资源和Resources文件夹下的资源打包后都不可以更改,因此这部分内容不能进行热更新,而lua代码(解释型语言)逻辑不需要进行预编译再运行,可以在游戏运行过程中进行修改,AB包资源也可以在游戏运行过程中下载解压缩并使用其中的资源。因
阅读全文
摘要:一.lua安装和编程环境搭建 lua语言可以在官网:http://luadist.org/下载安装包安装,编程IDE之前学习使用的是SciTE(https://www.cnblogs.com/movin2333/p/14348703.html),这个IDE安装时会一并安装lua,当然,vscode、
阅读全文
摘要:一.简介 AssetBundle简称AB包,特定平台的资产压缩包(包括模型、贴图、预设体、音效、材质球等资产)。 作用:Resources下的资源只读且打包后不可修改,而AB包存储位置自定,后期可以动态更新;AB包压缩后节省空间;可以进行资源热更新和脚本热更新。 二.官方打包工具AssetBundl
阅读全文