当前位置: 首页 > news >正文

[Unity] 个人编码规范与命名准则参考

Unity C# 在写的过程中, 和纯 C# 是有很大出入的. 甚至说, Unity C# 就是邪教. 例如它的命名规范与 C# 是不一致的, 而且由于游戏引擎的介入, 编写时的习惯相较于 C# 来讲, 也需要有所改变.

通用编码规范

常见的一些编码规范就不需要过多提及了, 这里只做简单列举.

  • 添加合适的空格和换行, 以使代码变得清晰明确
  • 相同功能或者相同类型的成员尽量放在一起, 例如私有成员的定义写在一起, 公开成员的定义写在一起.

命名准则参考

关于 “不使用” 的规则

  • C# 从来不会使用蛇形命名法, 除了前缀, 不要在你的命名中出现下划线. 这样的名称是不规范的: button_ok
  • C# 从来不会使用匈牙利命名法, 也就是在名称的尾部加上用以标识类型的后缀. 这样的名称是不规范的: frmShop(表示一个商店的窗体)
  • C# 基本不会使用缩写, 除了常用与通用的缩写例如 “HTTP”(Hyper text transfer protocol) 和 “ID”(Identifier) , 不要使用缩写. 这样的名称是不规范的: acc(account), btn(button). 你应该使用它们的全称, 除非它的全称真的很长.

参考: 通用命名约定 - 框架设计指引 | Microsoft Learn


关于 “Unity C# 与 C# 不同之处”

  • Unity C# 标准库的属性(Properties)并没有按照 C# 规范使用大驼峰命名法.

成员命名:

  • 所有公开的成员都应该使用帕斯卡命名法.
    但是对于属性和字段, 你可以考虑使用驼峰命名法, 因为 Unity 就是这么做的. 这个可以根据你的习惯选择.
  • 私有字段成员建议使用下划线前缀驼峰命名法
  • 所有的方法名称都应该使用帕斯卡命名法.
    不论其访问等级是怎样的, 方法都应该使用帕斯卡命名法
  • 所有的方法参数都应该使用驼峰命名法.

类型定义:

  • 所有的类型定义都应该使用帕斯卡命名法
  • 接口定义应该有 ‘I’ 前缀.

关于语义上的建议.

  • 关于游戏对象的控制脚本, 可以以 ‘Controller’ 为后缀命名, 当然, 如果觉得太长, 使用 ‘Ctrl’ 作为后缀也是可以的.
  • 当脚本中需要引用某些游戏对象的时候, 可以将这个字段名添加 ‘Ref’ 后缀来表示这是个游戏对象引用.
  • 当引用的某个游戏对象是专门用来作为另一个游戏对象的父对象的时候, 也就是 “插槽”, 你也可以使用 ‘Slot’ 作为后缀来命名, 这样看到名字就能知道用途.
  • 当引用一个预制体的时候, 可以使用 ‘Prefab’ 后缀来表示这里需要一个预制体.

为什么前面说不使用类型前缀, 而这里又推荐使用后缀. 是因为 Unity 中游戏对象可能是场景中的, 也有可能是预制体. 引用的时候, 字段声明是一模一样的. 只能在名称上加后缀加以区分.

http://www.lryc.cn/news/212602.html

相关文章:

  • 堆栈与队列算法-以链表来实现队列
  • 快速入门:使用 Spring Boot 构建 Web 应用程序
  • 01.CentOS7静默安装oracle11g
  • SASE安全访问服务边缘
  • k8s集群升级
  • redis原理 主从同步和哨兵集群
  • 四季古诗赏析
  • 【网络协议】聊聊套接字socket
  • GEO生信数据挖掘(十一)STRING数据库PPI蛋白互作网络 Cytoscape个性化绘图【SCI 指日可待】
  • api接口更新钉钉文档
  • Android---如何同view进行渲染
  • 【LeetCode:26. 删除有序数组中的重复项 | 双指针】
  • 如何判断一个对象是不是一个空对象?
  • C/C++ “variable set but not used“的 警告问题解决方案
  • JAVA安全入门之反射
  • 【c++|opencv】一、基础操作---2.图像信息获取
  • HarmonyOS开发:探索组件化模式开发
  • 目标URL启用了不安全的HTTP方法
  • 大数据之LibrA数据库系统告警处理(ALM-12001 审计日志转储失败)
  • 大模型该被知道的技术实现-面向垂直领域
  • 赛灵思产品系列
  • [Linux C] signal 的使用
  • AI时代产品经理升级之道:ChatGPT让产品经理插上翅膀
  • 计算机网络重点概念整理-第七章 网络安全【期末复习|考研复习】
  • 【LeetCode力扣】42. 接雨水
  • 03、SpringCloud -- 动态倒计时 及 当前用户的获取(用户未登录提示其登录)
  • Mac用户心目中的四款首选原型工具
  • 国内内卷太严重,还不考虑一下在海外接单?那这几个平台你知道吗?
  • 在excel中如何打出上标、下标
  • LoongArch 五级流水线实现