热更新xLua实践(xLua背包)

概述

学习完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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值