3dContactPointAnnotationTool开发日志(六)
一种可行的思路就是枚举一个模型的三角面片,然后判断三角形是否与另一个物体相交即可。为了让效果更好我想只渲染模型的线框。
在网上查了半天好像Unity里都没有自带的方便的渲染线框的方式,我又自己玩了玩发现可以将材质换成unity自带的VR/SpatialMapping/Wireframe。不过看上去模型不是镂空的,只是表面显示了三角面片,要是只有线框就更好了。
又回过头看了看,发现Unity用shader显示物体线框提到的方法还挺好的,就是下载一个UCLA Wireframe Shader资源然后导入到项目中。
将它提供的wireframe材质拖到模型上,效果还挺不错的。
颜色也可以轻松改变,超赞。
想在代码里调用就这么写:
meshRenderer.material = new Material(Shader.Find("UCLA Game Lab/Wireframe/Single-Sided"));
路径名和下图Shader中的一致就行。
添加了一个toggle,命名为wireframe,实现了模型网格材质与默认材质间的切换。
tag必须先定义后使用。不然会报错。
这个是压根没有这个组件,然后获取该组件会报错。虽然它讲的不是很明确,但实际上就是这样。
![8.png 8.png](https://i.loli.net/2018/11/15/5bed1c05106c6.png)
![9.png 9.png](https://i.loli.net/2018/11/15/5bed1c099edec.png)