UEDL10-3——线段、网格、射线

本章代码关键字

1
2
3
Gizmos.DrawLine()        //绘制线段
Gizmos.DrawMesh() //绘制网格
Gizmos.DrawRay() //绘制射线

Gizmos绘制线段

Gizmos.DrawLine(起点, 终点);

假设要绘制从自己位置出发到自身坐标系的(1,1,1)的线段:

1
2
3
4
5
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.red;
Gizmos.DrawLine(this.transform.position, this.transform.position + Vector3.one);
}

显示效果:image

Gizmos绘制网格

Gizmos.DrawMesh(mesh, 位置, 角度);​,可以将网格绘制到Scene窗口上,且面是填充的

  • 参数一:要绘制的网格
  • 参数二:绘制的位置
  • 参数三:绘制网格的角度
1
2
3
4
5
6
7
public Mesh mesh;

private void OnDrawGizmosSelected()
{
if (mesh != null)
Gizmos.DrawMesh(mesh, this.transform.position, this.transform.rotation);
}

显示效果:image

Gizmos绘制射线

Gizmos.DrawRay(起点, 方向);​,指定起点和方向(方向包含长度消息),绘制一个射线

1
2
3
4
5
private void OnDrawGizmosSelected()
{
Gizmos.color = Color.blue;
Gizmos.DrawRay(this.transform.position, transform.forward * 2);
}

显示效果:image