概述
学习完xLua后的实践小项目



准备工作

新建工程导入必要资源




VScode环境搭建
包括一些设置



开发工作

1.拼面板

主面板部分


背包面板部分


格子面板


2.Lua基本逻辑准备

InitClass.lua 脚本
--常用别名都在这里面定位
--准备我们之前导入的脚本
--面向对象相关
require("Object")
--字符串拆分
require("SplitTools")
--Json解析
Json = require("JsonUtility")
--Unity相关的
GameObject = CS.UnityEngine.GameObject
Resources = CS.UnityEngine.Resources
Transform = CS.UnityEngine.Transform
RectTransform = CS.UnityEngine.RectTransform
--图集对象类
SpriteAtlas = CS.UnityEngine.U2D.SpriteAtlas
Vector3 = CS.UnityEngine.Vector3
Vector2 = CS.UnityEngine.Vector2
--Unity相关
UI = CS.UnityEngine.UI
Image = UI.Image
Text = UI.Text
Button = UI.Button
Toggle = UI.Toggle
--就是Scroll View
ScrollRect = UI.ScrollRect
--自己写的C#脚本相关
--直接得到AB包资源管理器的 单例对象
ABMgr = CS.ABMgr.GetInstance()
测试


3.数据准备


数据准备


创建图集


excel数据转Json

代码读取

配置表读取到Lua中

玩家数据准备

4.核心面板逻辑处理

MainPanel lua脚本
--只要是一个新的对象(如面板)我们就要新建一张表
MainPanel = {}
--不是必须写 因为lua的特性 不存在声明变量的概念
--这样写的目的 是当别人看这个lua代码时 知道这个表(对象)有什么变量很重要
--关联的面板对象
MainPanel.panelObj = nil
--对应的面板控件
MainPanel.btnRole = nil --这里只处理了btnRole按钮的逻辑
MainPanel.btnSkill = nil --btnSkill的逻辑也是一样进行添加即可
--需要做 实例化面板对象
--为这个面板 处理对应的逻辑 比如按钮点击等等
--初始化该面板 实例化对象 控件事件监听
function MainPanel:Init()
--面板对象没有实例化过 才去实例化处理
if self.panelObj == nil then
--1.实例化面板对象 ABMgr + 设置父对象
self.panelObj = ABMgr:LoadRes("ui", "MainPanel", typeof(GameObject))
self.panelObj.transform:SetParent(Canvas, false)
--2.找到对应控件
--找到子对象 再找到身上挂载的 脚本(如button脚本)
self.btnRole = self.panelObj.transform:Find("btnRole"):GetComponent(typeof(Button))
print(self

最低0.47元/天 解锁文章
2476

被折叠的 条评论
为什么被折叠?



