Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 在OnGUI中绘制具有颜色和厚度的矩形_Unity3d - Fatal编程技术网

Unity3d 在OnGUI中绘制具有颜色和厚度的矩形

Unity3d 在OnGUI中绘制具有颜色和厚度的矩形,unity3d,Unity3d,我想在OnGUI中绘制一个框架/矩形,以便显示某个区域以进行调试 此矩形应以一定的“厚度”/线宽和颜色显示 到目前为止,我只找到了GUI.Label和GUI.Box,这两个似乎都不适用于此 谢谢大家! 如果只是为了调试,我建议使用 注意:仅在场景视图中绘制而不是在游戏视图中绘制,因此真正的仅用于调试 private void ondrawgizmoss selected() { //在变换位置绘制黄色立方体 var color=Gizmos.color; Gizmos.color=color.y

我想在OnGUI中绘制一个框架/矩形,以便显示某个区域以进行调试

此矩形应以一定的“厚度”/线宽和颜色显示

到目前为止,我只找到了GUI.Label和GUI.Box,这两个似乎都不适用于此


谢谢大家!

如果只是为了调试,我建议使用

注意:仅在
场景视图中绘制
而不是在
游戏视图中绘制,因此真正的仅用于调试

private void ondrawgizmoss selected()
{
//在变换位置绘制黄色立方体
var color=Gizmos.color;
Gizmos.color=color.yellow;
Gizmos.DrawWireCube(transform.position,新向量3(1,1,1));
Gizmos.color=颜色;
}
用于仅在选择对象时显示它,或
OnDrawGizmos
用于始终显示它

请注意,这是在世界空间中完成的,因此,如果您希望大小向量等与对象一起旋转,可以将其包裹在两者之间

var矩阵=Gizmos.matrix;
Gizmos.matrix=transform.localToWorldMatrix;
//...
Gizmos.matrix=矩阵;

不幸的是,没有选择改变线的厚度

但是您可以通过简单地绘制例如4个普通立方体来形成一个矩形来克服这一问题。大概是

private void OnDrawGizmos()
{
DrawDebugRect(新矢量2(0.5f,0.3f),0.05f);
}
专用void DrawRect(矢量2大小、浮动厚度)
{   
var矩阵=Gizmos.matrix;
Gizmos.matrix=transform.localToWorldMatrix;
//顶部立方体
Gizmos.DrawCube(Vector3.up*size.y/2,新Vector3(size.x,thickness,0.01f);
//底部立方体
Gizmos.DrawCube(Vector3.down*size.y/2,新的Vector3(size.x,thickness,0.01f);
//左立方体
Gizmos.DrawCube(Vector3.left*size.x/2,新Vector3(厚度,尺寸.y,0.01f);
//右立方体
Gizmos.DrawCube(Vector3.right*size.x/2,新Vector3(厚度,尺寸.y,0.01f);
Gizmos.matrix=矩阵;
}


我只使用智能手机,所以它可能无法复制,但我想你会明白的;)

如果只是为了调试,我建议使用它

注意:仅在
场景视图中绘制
而不是在
游戏视图中绘制,因此真正的仅用于调试

private void ondrawgizmoss selected()
{
//在变换位置绘制黄色立方体
var color=Gizmos.color;
Gizmos.color=color.yellow;
Gizmos.DrawWireCube(transform.position,新向量3(1,1,1));
Gizmos.color=颜色;
}
用于仅在选择对象时显示它,或
OnDrawGizmos
用于始终显示它

请注意,这是在世界空间中完成的,因此,如果您希望大小向量等与对象一起旋转,可以将其包裹在两者之间

var矩阵=Gizmos.matrix;
Gizmos.matrix=transform.localToWorldMatrix;
//...
Gizmos.matrix=矩阵;

不幸的是,没有选择改变线的厚度

但是你可以通过简单地画4个普通的立方体来克服这个问题,比如用它来形成一个矩形

private void OnDrawGizmos()
{
DrawDebugRect(新矢量2(0.5f,0.3f),0.05f);
}
专用void DrawRect(矢量2大小、浮动厚度)
{   
var矩阵=Gizmos.matrix;
Gizmos.matrix=transform.localToWorldMatrix;
//顶部立方体
Gizmos.DrawCube(Vector3.up*size.y/2,新Vector3(size.x,thickness,0.01f);
//底部立方体
Gizmos.DrawCube(Vector3.down*size.y/2,新的Vector3(size.x,thickness,0.01f);
//左立方体
Gizmos.DrawCube(Vector3.left*size.x/2,新Vector3(厚度,尺寸.y,0.01f);
//右立方体
Gizmos.DrawCube(Vector3.right*size.x/2,新Vector3(厚度,尺寸.y,0.01f);
Gizmos.matrix=矩阵;
}


我只使用智能手机,所以它可能无法复制,但我想你会明白的;)

不要使用OnGui。它既旧又糟糕。请使用新UI(UGUI)。不要使用OnGui。它既旧又糟糕。请使用新UI(UGUI)。