【发布时间】:2015-08-15 16:28:18
【问题描述】:
我想在 Unity 编辑器中选择一种颜色,然后在代码中设置颜色值,使对应的 Unity 编辑器颜色选择器颜色成为 GUIStyle 颜色。这就是我想要的:
public Color FontColor;
public int FontSize;
GUIStyle myStyle = new GUIStyle();
myStyle.fontSize = FontSize;
myStyle.normal.textColor = FontColor;
GUI.Label(new Rect(x * slotSize + stackAmountPosX, y * slotSize + stackAmountPosY, slotSize, slotSize), slotItem.amount.ToString(), myStyle);
所以这应该允许我将 myStyle.normal.textColor 设置为我在 Unity 编辑器颜色选择器中选择的任何内容。无论我在编辑器中选择什么颜色,它都不会呈现文本,甚至会给我某种错误。我花了时间研究这个,但没有找到任何相关的答案。
编辑:为了进一步清楚:我不是在创建自己的颜色选择器。我正在使用 Unity 5.0.1f1 64 位。也许我的问题不是很清楚。我正在创建我的 OWN 脚本,当附加到 GameObject 时,应该允许我使用 Unity 颜色选择器在检查器中选择一种颜色,以将变量分配给某种颜色,然后我可以使用该颜色来设置我的文本颜色。颜色选择器工作。我的脚本有效。但出于某种原因,Unity 不使用 FontColor 变量呈现文本。只有当我使用 Color.Black 时才会呈现。如果我使用 FontColor 变量并从 Inspector 的 Unity 颜色选择器中选择颜色(例如黑色),它不会呈现。
编辑:由于显然我没有足够的声誉(我需要阅读声誉系统),我将描述图像。这是检查器中 Unity 的颜色选择器的图片,其中分配了我的变量。
上图是使用 FontColor 变量时 Inspector 中可用的颜色选择器。我从这个颜色选择器中选择颜色,它不会渲染文本。如果我直接设置颜色,它只会渲染文本,而不是通过变量。
【问题讨论】:
-
你遇到了什么错误?
-
请使用 unity3d 标签。
-
好的。这不是错误。使用 FontColor 变量时,它根本不会在屏幕上呈现文本,但是当我设置 Style.normal.textColor = Color.black 或我需要的任何颜色时,一切正常,但我希望能够使用 public变量,出于某种原因,如果我使用变量而不是 Color.xxxxx,Unity 将不会呈现文本。谢谢。如果您还有其他问题,请询问,谢谢!
-
我建议您开始使用 Unity 5 和新 UI - 它要好得多(而且您使用的旧 UI 将会过时)
-
我使用的是 Unity 5.0.1f1 64 位。也许我的问题不是很清楚。我正在创建我的 OWN 脚本,当附加到游戏对象时,应该允许我使用 Unity 颜色选择器在检查器中选择一种颜色。颜色选择器工作。我的脚本有效。但由于某种原因,Unity 不使用 FontColor 变量呈现文本。只有当我使用 Color.Black 时才会呈现。如果我使用 FontColor 变量并从 Inspector 的 Unity 颜色选择器中选择颜色(例如黑色),它不会呈现。抱歉问题不清楚,我会发布更新。谢谢!
标签: c# unity3d color-picker