Unity Lua UI界面封装
来源:互联网 发布:阿里郎电影百度云 编辑:程序博客网 时间:2024/05/18 15:25
lua做UGUI界面控制,找到一个界面的所有要用到的控件去绑定事件或者做控制,如果很原始的Find和GetComponent是一个很痛苦的事情,因为UGUI的界面层级都会嵌的比较深
,有很多的重复操作,感受到Lua的灵活与强大,做了一个界面封装:
-- 用于Lua的界面封装类-- 使用方式:-- 1、先找到UI的GameObject,例如 local uiObj = GameObject.Find('UIRoot')-- 2、做lua封装,例如 local view = LuaView.Create(uiObj)-- 3、然后就可以访问其下的元素,例如:-- 访问子元素 view.btnStart.label.gameObject--访问子元素上的ui组件 view.btnStart.label.Text-- 注意:UI的gameObject全路径命名不可完全重复,自身名字不可使用UI组件的名字,否则访问UI的gameObject时会认为是想访问UI组件LuaView={}LuaView.keywords={['Button']=UnityEngine.UI.Button,['GridLayoutGroup']=UnityEngine.UI.GridLayoutGroup,['HorizontalLayoutGroup']=UnityEngine.UI.HorizontalLayoutGroup,['Image']=UnityEngine.UI.Image,['InputField']=UnityEngine.UI.InputField,['RawImage']=UnityEngine.UI.RawImage,['Scrollbar']=UnityEngine.UI.Scrollbar,['ScrollRect']=UnityEngine.UI.ScrollRect,['Slider']=UnityEngine.UI.Slider,['Text']=UnityEngine.UI.Text,['Toggle']=UnityEngine.UI.Toggle,['ToggleGroup']=UnityEngine.UI.ToggleGroup,['VerticalLayoutGroup']=UnityEngine.VerticalLayoutGroup,}local viewIndexfunction LuaView.Create(gameObject)local o = {}setmetatable(o,o)o.__index = viewIndex--o.gameObject = gameObjecto.transform = gameObject.transform--return oendfunction viewIndex(view,key)local setV,e = loadstring('function setV(view,v) view.' .. key .. '=v end')local uiComp = LuaView.keywords[key]if uiComp then-- 如果是UI组件local c = view.gameObject:GetComponent(uiComp)c =c or falsesetV(view,c)do return c endelse-- 否则是子物体local g = view.transform:Find(key)g = g or falseif g thenlocal node = LuaView.Create(g.gameObject)setV(view,node)do return node endelsesetV(view,g)do return g endendendend
测试如下:
我用的slua,但是用ulua也一样的,这个也可以用于ngui,改下keywords就行
阅读全文
0 0
- Unity Lua UI界面封装
- unity-lua 登录界面思考
- Unity 基于Lua UI简单框架
- unity手游UI界面开发之商店等界面
- 关于Lua的Unity UI面向过程编程模板
- Cocos2d-lua(四)加载CocosStudio导出的UI界面
- Unity-插件-NGUI-常用UI界面功能(1)
- unity中用UGUI實現在UI界面鼠標旋轉三維物體
- Unity之在UI界面上显示3D模型
- unity之UI设计—简单按钮界面
- 在UNITY中创建出一个简单的UI界面
- Unity中让UI界面根据鼠标位置摇晃代码
- Unity Learning —— 水果忍者界面UI
- Unity 生成WebGL时UI界面随浏览器自适应
- unity lua
- lua封装
- Unity UI
- UI-封装
- Vue之通过http服务打开build后的项目
- 简单的js俄罗斯方块游戏源码
- java 对 汉字排序(按照拼音字母排序)
- 相机客观参数整理软件需求报告自动化统计
- 几种二分方法整理
- Unity Lua UI界面封装
- iOS 打开AppStore进行软件评分
- bzoj 1617(dp)
- Cannot set the value of read-only property 'outputFile'
- multiple definition of `xxxx`问题解决及其原理
- Android使用HttpURLConnection发送网络请求(笔记)
- python开发工具pycharm使用简介
- Jdbc时间类型的处理
- 内存泄漏工具