UH2S3L2——toLua解析器
UH2S3L2——toLua解析器
本章代码关键字
1234567LuaState //Lua解析器类,初始化lua解析器只需要new它luaState.Start() //启动lua解析器luaState.DoString() //执行一个字符串形式的Lua语句luaState.DoFile() //执行指定路径下的lua脚本(可加可不加.lua后缀)luaState.Require() //执行指定路径下的lua脚本(不可加.lua后缀)luaState.CheckTop() //检查lua解析器栈顶是否为空,销毁lua解析器前必须要执行该方法luaState.Dispose() //销毁lua解析器
toLua解析器
toLua同样提供了一个Lua解析器(虚拟机)对象用来执行lua代码和脚本
初始化并启动一个Lua解析器
toLua的解析器只需要new出来然后执行start()方法即可
12LuaState luaState = new LuaState();lua ...
UH2S3L1——toLua框架导入和AB包相关准备
UH2S3L1——toLua框架导入和AB包相关准备
toLua的下载与导入
toLua已开源到GitHub。其git地址是:https://github.com/topameng/tolua,下载源代码的ZIP包即可
下载解压后,先将master文件夹下的Luajit和Luajit64导入到项目根目录下
然后将master文件夹下的Assets文件夹下的各个文件夹复制到项目的Assets目录下
AB包的导入
导入AssetBundles-Browser-master,详见UH1L1——AB包资源打包
其他需要导入的
导入小框架的单例模式基类(不建议导入其他内容)
导入AssetBundle课上写好的资源管理器,代码详见UH1L4——AB包资源管理器
toLua重要配置文件
Editor/Custom文件夹下的CustomSetting.cs是toLua非常重要的配置文件
我们需要在这里接下来定义需要导出的类型和委托等都需要在这里添加
CustomSetting.cs包括的重要内容
添加需要导出的类或者委托
类加入到customTypeList中,详细看:to ...
UH2S3——toLua
UH2S3——toLua
高版本相关
笔者在Unity2021的学习里使用toLua遇到较为严重的问题
包括但不限于Debug类,以及Int32类的生成的代码存在问题,它导致我们无法在不修改源代码的前提下在正常的在Lua中创建int类型数组
结合toLua在Github上久未更新,且未声明可支持更高版本的现状上来看,笔者认为该方案已不适用于高版本的Unity项目
toLua
toLua是Unity静态绑定lua的一个解决方案,它通过C#提供的反射信息分析代码并生成包装的类(Wrap.cs文件)。
它是一个用来简化在C#中集成Lua的插件,可以自动生成用于在Lua中访问Unity的绑定代码,
并把C#中的常量、变量、函数、属性、类以及枚举暴露给Lua。
它是从cstolua衍变而来。从它的名字可以看出,它是集成了原来的 toLua 代码通过二次封装写了一个 C# 与 tolua C 的一个中间层。
GitHub - topameng/tolua: The fastest unity lua binding solution
本系列学习内容
toLua框架导入和AB包相关准 ...
UG4L9-15——下拉框
UG4L9-15——下拉框
本章代码关键字
123456789GComboBox //下拉框控件类gObject.asComboBox //将元件类对象as成下拉框控件类对象的属性gComboBox.items //下拉框的选项数组属性,赋值可以修改选项gComboBox.icons //下拉框的选项图标数组属性,赋值可以修改选项的图标gComboBox.values //下拉框的选项的值属性,赋值可以修改选项的值gComboBox.selectedIndex //下拉框当前选中项的索引gComboBox.value //下拉框当前选中项的值GRoot.inst.HidePopup() //关闭下拉框的下拉列表gComboBox.onChanged.Add() //添加监听下拉框选中项改变的函数
下拉框控件
参考各种软件菜单栏中的下拉控件,如:
创建下拉框控件
自动创建—— 菜单栏—& ...
UG4L9-14——列表
UG4L9-14——列表
本章代码关键字
123456789101112131415GList //列表控件类GObject.asList //将元件类对象as成FGUI列表类对象的属性gList.defaultItem //通过代码设置列表项目资源gList.AddItemFromPool() //从池中取出或新建对象添加到列表中gList.RemoveChildToPool() //删除一个item,并将对象返回池中gList.RemoveChildToPoolAt() //删除指定索引的item,并返回池中gList.RemoveChildrenToPool() //删除一个范围内的item,或者全部删除,并将删除的对象都返回池里gList.GetFromPool() //从池中取出对象,并不会添加到列表中gLi ...
UG4L9-13——滚动容器
UG4L9-13——滚动容器
本章代码关键字
123456789101112131415161718ScrollPane //滚动容器类gComponent.scrollPane //将组件转化为滚动容器的属性UIConfig.verticalScrollBar //设置全局垂直滚动条UIConfig.horizontalScrollBar //设置全局水平滚动条scrollPane.posX //滚动容器的X轴滚动位置scrollPane.posY //滚动容器的Y轴滚动位置scrollPane.SetPercX() //将滚动容器按百分比滚动到某个X轴位置scrollPane.SetPercY() //将滚动容器按百分比滚动到某个Y轴位置scrollP ...
UG4L9-12——滚动条
UG4L9-12——滚动条
滚动条
滚动条是配合滚动容器使用的UI控件,滚动条不能直接拖到舞台上使用
滚动容器即使没有滚动条也能正常使用,滚动条一般是个可选控件
创建滚动条控件
自动创建—— 菜单栏—> 资源—> 新建滚动条
手动创建—— 创建组件—> 拓展选择为滚动条
组件中关键元件名:
arrow1(可选):
水平滚动条时,代表左侧按钮;
垂直滚动条时,代表上侧的按钮
arrow2(可选):
水平滚动条时,代表右侧按钮;
垂直滚动条时,代表下侧的按钮
grip:表示滚动条中间的滑块按钮
bar:限制区域,表示滚动滑块上下或者左右时滑动的范围,
一般用一个空白的图形来表示就可以了,只作占位用途,
没有实际渲染效果。
滚动条属性相关
滚动条要配合滚动容器使用,不能直接拖入舞台使用,所以我们不会单独为它设置属性,只有之后配合滚动容器使用
Unity中的使用
滚动条不会直接拖到舞台上使用,一般有两种使用方式:
在项目属性 —> 预览设置里设置全局滚动条资源
在滚动容器中设置对应的滚动条
UG4L9-11——滑动条
UG4L9-11——滑动条
本章代码关键字
1234GSlider //滑动条控件类gObject.asSlider //将元件类对象as成滑动条类对象的属性gSlider.value //滑动条的当前值gSlider.onChanged.Add() //向滑动条添加监听值改变的监听函数
滑动条
滑动条与进度条相似,不过滑动条增加了一个按钮可以让玩家拖动它改变进度条的值,它的本质也是一个组件
创建滑动条组件
自动创建—— 菜单栏—> 资源—> 新建滑动条(或者快捷按钮)
手动创建—— 创建组件—> 拓展选择为滑动条
组件中关键元件名:
bar:横向滑动条改变宽度的元件
注意:一定该设置bar的宽度为滑动条处于最大值时的宽度(可以是任意类型元件)
bar_v:纵向滑动条改变高度的元件
注意:一定该设置bar_v的高度为滑动条处于最大值时的高度(可以是任意类型元件)
title:用于显示进度的标题,可以是文本、装载器,标签,按钮
...
P1L3——Blender
P1L3——Blender
Blender
Blender是一款免费开源三维图形图像软件,提供从建模、动画、材质、渲染、到音频处理、视频剪辑等一系列动画短片制作解决方案。
Blender拥有方便在不同工作下使用的多种用户界面,内置绿屏抠像、摄像机反向跟踪、遮罩处理、后期结点合成等高级影视解决方案。
Blender内置有Cycles渲染器与实时渲染引擎EEVEE。同时还支持多种第三方渲染器。
Blender为全世界的媒体工作者和艺术家而设计,可以被用来进行三维可视化,同时也可以创作广播和电影级品质的视频
Blender优点
轻量级;安装快,空间小,启动速度快,对硬件要求低
适合个人和小团队
功能全面:建模,UV,渲染,贴图,动画,粒子特效,雕刻
开源免费
插件众多,程序友好
教程多
社区氛围好
跨平台
渲染引擎优秀
P1L2——Lowpoly风格
P1L2——Lowpoly风格
Lowpoly
所谓的Low Poly,简单的说,就是3D模型的低精度表现形式。
早期的电脑硬件水平不发达,运算3D模型的时候无法达到现在这样的精细程度,为了提高运转速度,所以降低模型的面数。
如今随着独立游戏的风靡,因为成本的原因再次启用了这种风格,反而效果非常好。
PS1的《古墓丽影》
独立游戏《枪火重生》
美术特点
模型的面数较低
贴图使用纯色
能看到明显的面与面的交接
美术风格优势
难度低,入门简单
B站和YouTube的教程较多
资源量小,包体小
面数低,贴图少,帧率高
3D,玩法不受限制
风格稳定,来源不同的Lowpoly美术资源可以一起使用
商店这类风格的资源多
动画制作方面难度降低
可搭配3D场景模型、3D特效,3D动作使用(mixamo)
有较多方向可以做进阶提升
美术风格提升方向
原画设计、造型、色彩
Shader和材质:PBR、描边
部分手绘:脸部、衣服、装饰
细节增加
动作