我几乎是Unity的菜鸟。作为一名c ++程序员,Unity中的命名约定让我感到困惑。而OCD ontop会让我发疯;)
对象说了一个属性Transform
,它又有一个属性Position
。
但是必须使用小写在代码中编写transform.position
来访问这些属性。这对我来说不是很直观。所以我想知道如何看待它以便更容易避免并发症。我应该使用哪些约定来通过快速查看变量来告诉所有appart。
答案 0 :(得分:5)
Unity约定实际上相当简单:一切都是Pascal,类型(类,结构,枚举)和方法以大写字母,字段和属性小写开头。枚举值为大写,常量为小写(通常)。
所以ClassName
,MethodName
,myField
,myProperty { get; set; }
,MyEnum.CaseA
......就是这样。
至于您的示例,Transform
是一个类,而transform
是该特定GameObject / Component中Transform
实例的访问者。
此外,Transform
没有Position
属性,它具有position
属性(总是小写)。
这或多或少基于C#的约定和标准.NET库(MS有very precise guidelines关于它,除了标准的.NET使用UpperCase对于公共/受保护的方法和属性,以及私有的小写(通常;对于我认为的编码器的口味,更多的是私有的。)
作为旁注,对于任何语言的代码库,最好的方法是始终遵循现有的约定。每个经验丰富的程序员都会告诉你这个。我理解强迫症,相信我,但在这种情况下,我建议你放手。 关于为什么一个约定比另一个更好(根据定义约定是任意的),很少有客观论据,即使有,你可以做的绝对更糟糕的事情是混合几个约定,因为那时你有0个约定所有,永远不知道会发生什么。
至少C#尝试标准化;我已经研究过几个C ++代码库,但我没有看到一个共同点:UpperCaseClassNames
,lowerCaseClassNames
,underscore_separated
,tClassName
,ENUMS_IN_UPPER
,或者不是......它很少一致,所以混合越少越好。