EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

[Unity]以m_开头的变量为什么在Insepector面板中不显示?

同样的,即使你写public float m_camelCase = 0;

m_cameCase

在Inspector中也会变成 Came Case :

Image


在Unity中,每当你写
[SerializeField] float m_MovingTurnSpeed = 360;
的时候,在Inpector中你将看到 去掉m_+首字母大写的自动补充空格的
如 Moving Turn Speed 这样的显示出来的变量。


是的,
Unity为了更友好地显示,只要你使用了m_你就会在实际面板中看不到m_,
只要你用首字母大写拼接单词,Unity会帮你自动空格分开,这只是Unity的一个特性,
并不用在意。

该问题最早提问于2009年2月8日,从链接[1]可以查看。

 

 

Jashan

来自Jashan的解释:

好吧,原因可能是有些人喜欢把他们的成员变量称为m_myMemberVariableName,

这不是一个明文规定,但是我个人非常喜欢,并且这种惯例写法传播得非常广,

所以我不会把这个视为一个Bug,而会当作一个特性。

我们程序员或者艺术家估计都不太喜欢大写的M_放在变量前面,因为这样看起来很奇怪。

总的来说,我认为对编码惯例稍微了解一下是个好主意。


参考文档:
[1] the subString "m_"    
[2] 定义变量前面加小写m    
[3] Why do variable names often start with the letter 'm'? [duplicate]    

This article was last edited at 2020-03-25 14:16:07

* *