C# 如何以编程方式使GUI.Box角在Unity中变圆

C# 如何以编程方式使GUI.Box角在Unity中变圆,c#,unity3d,C#,Unity3d,我对C#和Unity知之甚少。我只是遵循中的脚本,它以编程方式创建GUI框。所以我想所有使用UnityInspector的stying解决方案都不适合我 我当前的GUI.Box样式 Texture2D texture = new Texture2D(1, 1); texture.SetPixel(0,0,Color.white); texture.Apply(); GUIStyle myBoxStyle2 = new GUIStyle(GUI.skin.box); myBoxStyle2.fo

我对C#和Unity知之甚少。我只是遵循中的脚本,它以编程方式创建GUI框。所以我想所有使用Unity
Inspector
的stying解决方案都不适合我

我当前的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);
它看起来像这个(白色的盒子)


我检查了,没有帮助。

圆角实际上是的默认样式

默认情况下,afaik内部只使用
UISprite
作为纹理。为了在
monobhavior
组件上也使用它,您可以使用

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;
这应该已经解决了,或者您可以尝试做同样的事情,但使用而不是。为了让列表更完整:你可以用同样的方法改变文本的颜色


但是总的来说。。。我想说Vuforia给了你一个非常糟糕的选择。使用
GUI
实际上可以追溯到Unity 4.5。(2015年左右如此)

它仍在使用中,但实际上也仅用于和其他编辑器脚本


现在,正如在评论中提到的,您应该使用Unity 4.6中介绍的。

我非常确定使用的是图像背景的圆角。因为您使用的是纯白色纹理,带有硬角,所以您的角会很硬。@Draco18s所以我应该更改纹理还是?我只想要一个白色背景和圆角,我不需要使用纹理2D,使用任何其他方法都可以。你可以使用名为
UISprite
的内置纹理,它有圆角(通常用于按钮)或。不管怎样,你有没有试着不为它创造一种新的风格?默认情况下,Afaik使用圆形纹理?最后:您一定要使用
GUI.Box
?为什么不简单地使用Unity 4中引入的?@derHugo,因为默认的是灰色背景,这使得文本有点不清楚。谢谢,我要试试雪碧。