Lua代码规范

简介:



以下规范,是在Unity中使用Lua做为开发语言,仅供参考。

1.格式规范

1、 lua文件名统一小写,中间一律不加下划线分割

2、 类名首字母大写,多个词组成的类名,每个词的首字母大写,中间一律不加下划线分割

文件名是否使用下划线分隔,仅供参考

3、 方法名首字母大写,多个词组成的方法名与类名规则相同

4、 类的成员变量以m_开头

5、 禁止使用全局变量,如果是通用的变量可以统一放到一个表里面

6、 换行,函数名之后换行,then、do、end之后换行,代码换行就不说了

7、 缩进,缩进是标准的4空格tab缩进,

8、类的方法定义如下示例,使用function 类名:方法名(参数列表) 的方式

示例

复制代码
--HostPlayer
--初始化用户
function HostPlayer:Init(id, sex, xxx, yyy)
    
    self.m_Id = id;           --玩家ID
    self.m_Sex = sex;          --玩家性别
    self.m_Xxx = xxx;          --
    self.m_Yyyy = yyy;         --
end
复制代码

2.代码效率规范

1、 不要在update里使用GetCompont、GetComponentInChildren

2、 不要在Mono脚本 update使用foreach(Unity 5.5版本以下)

3、 animationmanager:GetCurrentStateInfo() 不要在Update里调用

4、 UIListItem_AAA:GetLable("123")等 用UIListItem_AAA.Controls["123"]  代替

5、  Input.GetAxis("Vertical") 用 LuaHelper.GetAxis(AxisType.Vertical)代替

6、 Application.platform == UnityEngine.RuntimePlatform.WindowsEditor 用LuaHelper.IsWindowsEditor() 代替

7、 UICamera.isOverUI(实现有GetComponent) 应该在事件触发之后判断 ,不要在Update里直接调用。

8、 不要在Update里改变UI控件的值如UILable_AAA.text = "123",UISprite_BBB.spriteName = "123",要在值变化是refresh页面


本文转自赵青青博客园博客,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6406404.html,如需转载请自行联系原作者


相关文章
|
测试技术 C# 图形学
Unity3d 下websocket的使用
今天介绍一下如何在Unity3D下使用WebSocket。 首先介绍一下什么是websocket,以及与socket,和http的区别与联系,然后介绍一下websocket的一些开源的项目。 WebSocket是什么 WebSocket协议是为了实现网络客户端和服务器端全双工通信而引入的一种基于消息帧和TCP的通信机制,这个协议本身的目标是为了在http服务器上引入双向通信的机制,从而克服http单向通信的缺陷(http设计的初衷就不是为了双向通信),其可以在复用http的端口,支持http的代理,认证等,虽然如此,websocket可以独立于http存在。
|
5月前
|
安全 Android开发 数据安全/隐私保护
【HarmonyOS 5】鸿蒙用户头像编辑功能实践
【HarmonyOS 5】鸿蒙用户头像编辑功能实践
176 2
【HarmonyOS 5】鸿蒙用户头像编辑功能实践
|
11月前
|
存储 自然语言处理 关系型数据库
基于阿里云通义千问开发智能客服与问答系统
在企业的数字化转型过程中,智能客服系统已成为提高客户满意度和降低运营成本的重要手段。阿里云的通义千问作为一款强大的大语言模型,具有自然语言理解、对话生成、知识检索等能力,非常适合用来开发智能客服与问答系统。 通过本博客,我们将演示如何基于阿里云的通义千问模型,结合阿里云相关产品如函数计算(FC)、API网关、RDS等,搭建一个功能齐全的智能客服系统。
1393 5
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
Unity精华☀️Audio Mixer终极教程:用《双人成行》讲解它的用途
|
存储 安全 算法
【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]
【C++入门到精通】 原子性操作库(atomic) C++11 [ C++入门 ]
658 1
|
存储 运维 NoSQL
如何撰写好的技术方案设计-真实案例干货分享
如何撰写好的技术方案设计-真实案例干货分享
2193 0
|
安全 搜索推荐 Linux
D-Bus深度解析:系统总线与会话总线的区别与应用
D-Bus深度解析:系统总线与会话总线的区别与应用
611 2
|
定位技术 图形学
【Unity实战】零代码实现物理2d绳子和绳桥效果——Hinge Joint 2D的使用
【Unity实战】零代码实现物理2d绳子和绳桥效果——Hinge Joint 2D的使用
1397 0
|
XML Ubuntu Linux
探索Linux中的`busctl`命令:DBus的瑞士军刀
`busctl`是Linux下管理DBus消息总线的命令行工具,用于查看、监听和控制DBus服务。
|
数据采集 JavaScript 前端开发
前端工程师用Node.js + Appium实现APP自动化
网上全是python + Appium的教程,Appium也支持Node.js开发,使用Node.js + Appium实现了自动化爬虫功能。
468 0
前端工程师用Node.js + Appium实现APP自动化