2015-06-02 1388 views
2

我想在Unity编辑器中选择一种颜色,然后在代码中设置颜色值以使相应的Unity Editor颜色选择器颜色成为GUIStyle颜色。下面是我对这个peice的:使用Unity Editor颜色选择器在代码中设置颜色值

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); 

因此,这应该让我设置为任何我在Unity编辑器拾色器挑myStyle.normal.textColor。无论我在编辑器中选择什么颜色,它都不会呈现文字,甚至不会给我某种错误。我花了时间研究这个,并没有找到任何相关的答案。

编辑:为了进一步清晰:我没有创建自己的彩色选择器。我正在使用Unity 5.0.1f1 64位。也许我的问题不是很清楚。我创建了自己的OWN脚本,当连接到GameObject时,我应该允许我使用Unity Color Picker在检查器中选择一种颜色,以将某个变量分配给某种颜色,然后我可以使用该颜色设置文本的颜色。拾色器正常工作。我的脚本工作。但由于某些原因,Unity不会使用FontColor变量来呈现文本。它只会渲染,如果我做Color.Black。如果我使用FontColor变量并从检查器中的Unity拾色器中选择颜色(例如黑色),它不会呈现。

编辑:由于显然我没有足够的声望(我需要在声望系统上阅读),我将描述图像。这是检查员中Unity的颜色选择器的图片,我的变量分配给它。

上图是使用FontColor变量时检查器中可用的颜色选择器。我从这个颜色选择器中选择颜色,并且它不呈现文本。如果我直接设置颜色,而不是通过变量,它只会渲染文本。

+0

你得到了什么错误? – Alex

+0

请使用unity3d标签。 –

+0

好的。这不是一个错误。当使用FontColor变量时,它不会在屏幕上显示文本,但是当我设置Style.normal.textColor = Color.black或任何需要的颜色时,一切正常,但我希望能够使用public变量,出于某种原因,如果我使用变量而不是Color.xxxxx谢谢,Unity不会渲染文本。请询问您是否还有其他问题,谢谢! –

回答

1

还记得设置alpha通道,否则颜色将是透明的。

Color picker

+0

完美!万分感谢! –