Unity的良好命名约定是什么?

时间:2014-07-05 12:13:52

标签: unity3d naming-conventions

我几乎是Unity的菜鸟。作为一名c ++程序员,Unity中的命名约定让我感到困惑。而OCD ontop会让我发疯;)

对象说了一个属性Transform,它又有一个属性Position。 但是必须使用小写在代码中编写transform.position来访问这些属性。这对我来说不是很直观。所以我想知道如何看待它以便更容易避免并发症。我应该使用哪些约定来通过快速查看变量来告诉所有appart。

1 个答案:

答案 0 :(得分:5)

Unity约定实际上相当简单:一切都是Pascal,类型(类,结构,枚举)和方法以大写字母,字段和属性小写开头。枚举值为大写,常量为小写(通常)。 所以ClassNameMethodNamemyFieldmyProperty { get; set; }MyEnum.CaseA ......就是这样。

至于您的示例,Transform是一个类,而transform是该特定GameObject / Component中Transform实例的访问者。 此外,Transform没有Position属性,它具有position属性(总是小写)。

这或多或少基于C#的约定和标准.NET库(MS有very precise guidelines关于它,除了标准的.NET使用UpperCase对于公共/受保护的方法和属性,以及私有的小写(通常;对于我认为的编码器的口味,更多的是私有的。)

作为旁注,对于任何语言的代码库,最好的方法是始终遵循现有的约定。每个经验丰富的程序员都会告诉你这个。我理解强迫症,相信我,但在这种情况下,我建议你放手。 关于为什么一个约定比另一个更好(根据定义约定是任意的),很少有客观论据,即使有,你可以做的绝对更糟糕的事情是混合几个约定,因为那时你有0个约定所有,永远不知道会发生什么。

至少C#尝试标准化;我已经研究过几个C ++代码库,但我没有看到一个共同点:UpperCaseClassNameslowerCaseClassNamesunderscore_separatedtClassNameENUMS_IN_UPPER,或者不是......它很少一致,所以混合越少越好。