Unity3d 使用[标题(“文本”)标题是否有限制?

Unity3d 使用[标题(“文本”)标题是否有限制?,unity3d,header,inspector,Unity3d,Header,Inspector,找到这个有用的工具后,我想用它来组织我的脚本。但是,当我添加第三个“类别”时,它给了我以下错误: attribute 'Header' is not valid on this decleration type. It is only valid on 'field' declerations. 我曾尝试使用“order=x”参数,但没有成功。知道发生了什么吗?我似乎在统一文件里找不到任何关于它的东西 [Header("Feedback settings")] public string ga

找到这个有用的工具后,我想用它来组织我的脚本。但是,当我添加第三个“类别”时,它给了我以下错误:

attribute 'Header' is not valid on this decleration type. It is only valid on 'field' declerations.
我曾尝试使用“order=x”参数,但没有成功。知道发生了什么吗?我似乎在统一文件里找不到任何关于它的东西

[Header("Feedback settings")]
public string gameName = "";
public string sendToEmail = "";
[Space(5)]
[Header("Canvas settings")]
public Sprite emptyStar, fullStar, button;
[Range(20, 100)]
public float canvasSize;
[Range(-1, 1)]
public float canvasXPosition, canvasYPosition;
public float spritePadding, buttonYOffset;
[Header("Rate settings")] //<-- this one is marked with the above error
public enum MarketPlaces {PC, mobileTablet};
public MarketPlaces compileFor = MarketPlaces.PC;
public string rateLink;

Unity的做法是,不能使用枚举来跟踪它

幸运的是,解决方案很简单——只需将枚举移到后面

[Header("Feedback settings")]
public string gameName = "";
public string sendToEmail = "";
[Space(5)]

[Header("Canvas settings")]
// not possible...
// public Sprite emptyStar, fullStar, button;

// you must do this...
public Sprite emptyStar;
public Sprite fullStar;
public Sprite button;

[Range(20, 100)]
public float canvasSize;

[Range(-1, 1)]
public float canvasXPosition, canvasYPosition;
public float spritePadding, buttonYOffset;

public enum MarketPlaces {PC, mobileTablet};
[Header("Rate settings")] // just move to here!
public MarketPlaces compileFor = MarketPlaces.PC;
public string rateLink;

非常感谢您!这解决了这个问题,但是现在我注意到在重新组织变量之后,我在Inspector面板中获得了3次“Canvas Settings”标题。这是否与范围属性有关?见原件post@sdieters我想这更可能与您如何在一行中声明
emptyStar、fullStar、button
有关。标题将应用于这三个元素中的每一个——如果您先声明其中一个元素,然后在下一行声明另外两个元素,那么标题应该只出现一次(位于第一个元素之上)。
[Header("Feedback settings")]
public string gameName = "";
public string sendToEmail = "";
[Space(5)]

[Header("Canvas settings")]
// not possible...
// public Sprite emptyStar, fullStar, button;

// you must do this...
public Sprite emptyStar;
public Sprite fullStar;
public Sprite button;

[Range(20, 100)]
public float canvasSize;

[Range(-1, 1)]
public float canvasXPosition, canvasYPosition;
public float spritePadding, buttonYOffset;

public enum MarketPlaces {PC, mobileTablet};
[Header("Rate settings")] // just move to here!
public MarketPlaces compileFor = MarketPlaces.PC;
public string rateLink;