我对C#和Unity不太了解。我只是遵循Vuforia's Unity Cloud Recognition tutorial中的脚本,该脚本以编程方式创建了GUI Box。因此,我猜想所有使用Unity Inspector
的样式解决方案都不适合我。
我当前的GUI.Box样式
Texture2D texture = new Texture2D(1, 1);
texture.SetPixel(0,0,Color.white);
texture.Apply();
GUIStyle myBoxStyle2 = new GUIStyle(GUI.skin.box);
myBoxStyle2.fontSize = 40;
myBoxStyle2.normal.background = texture;
myBoxStyle2.normal.textColor = Color.black;
myBoxStyle2.alignment = TextAnchor.MiddleLeft;
GUI.Box (new Rect(Screen.width/4,Screen.height/6,Screen.width/2,Screen.height/8), mTargetMetadata, myBoxStyle2);
它看起来像这样(白框)
我检查了GUI Style Manual,没有帮助。
答案 0 :(得分:1)
圆角实际上是GUI.Box
的默认样式。
默认情况下,内部afaik仅使用UISprite
作为纹理。为了在MonoBehaviour
组件上也能使用它,您可以使用
public Texture2D boxTexture;
并在其中引用UISprite以便将其用于您的样式。
但是听起来您的问题似乎更确切
如何更改GUI.Box的颜色?
因此,使用GUI
可以直接使用来更改颜色
// store current values before changing
var color = GUI.color;
var contentColor = GUI.contentColor;
// change GUI colors
GUI.color = Color.white;
GUI.contentColor = Color.black;
{
// draw Box with default style
GUI.Box (new Rect(Screen.width/4,Screen.height/6,Screen.width/2,Screen.height/8), mTargetMetadata);
}
// reset GUI colors to former stored values
GUI.color = color;
GUI.contentColor = contentColor;
这应该已经解决了,或者您可以尝试执行相同的操作,但是使用GUI.backgroundColor
而不是GUI.color
。只是为了使列表完整:您可以使用GUI.contentColor
更改文本颜色。
但是总的来说...我想说Vuforia在那给了你一个非常糟糕的选择。实际上,使用GUI
是,可以追溯到Unity 4.5。 (2015年左右)。
它仍在使用,但实际上Building Custom Inspectors和其他编辑器脚本几乎只使用 。
现在,如注释中所述,您应该使用Unity 4.6中引入的"New" UI System。