UEDL10-1——颜色、立方体、视锥
UEDL10-1——颜色、立方体、视锥
本章代码关键字
1 | Gizmos.color //设置Gizmos中的绘制API绘制出来的内容的颜色 |
Gizmos修改颜色
在调用Gizmos
中的绘制API之前,可以设置其绘制出来的颜色
该方法单独执行无效果,需要配合其他方法一起执行才能看出效果,如下面的绘制立方体
1 | private void OnDrawGizmosSelected() |
显示效果:
Gizmos绘制立方体
绘制立方体有两种API:
- 绘制实心立方体:
Gizmos.DrawCube(中心点, 大小);
- 绘制线框立方体:
Gizmos.DrawWireCube(中心点, 大小);
两个方法的参数都是立方体的位置及其某个边的长度
1 | private void OnDrawGizmosSelected() |
显示效果:
其中,红色线框立方体是随对象移动而移动的,绿色立方体位置是固定的
Gizmos绘制视锥
该方法会绘制应该类似于摄像机那样的视锥:Gizmos.DrawFrustum()
- 参数一:绘制位置
- 参数二:FOV,视野角度
- 参数三:远裁切平面到绘制位置的距离
- 参数四:近裁切平面到绘制位置的的距离
- 参数五:屏幕的长宽比
1 | private void OnDrawGizmosSelected() |
显示效果:
如何改变绘制内容的角度
上面绘制的内容都是不能随游戏对象的旋转而旋转的,如果要做到绘制内容的旋转需要使用Gizmos.matrix
如果要让绘制出来的内容跟随脚本依附的对象旋转,需要为Gizmos.matrix
赋值一个Matrix4x4.TRS(位置, 角度, 缩放)
的返回值
值得一提的是,如果在Matrix4x4.TRS()
内传入了某个游戏对象的位置,角度,缩放,
则不仅是旋转,位置和缩放也会随游戏对象的变换而变换(即使绘制位置没有传入该游戏对象的位置)
如果不希望缩放或者位置也随游戏对象的变换而变换,可以直接传入Vector3.one
如果要让绘制的内容的位置,角度,缩放与某个游戏对象的transform
相关联,还可以使用transform.localToWorldMatrix
直接赋值
1 | private void OnDrawGizmosSelected() |
显示效果:
如果要复原Gizmos.matrix
,使后来绘制的内容不受其影响,只需要赋值Matrix4x4.identity
即可
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!