Skip to main content
ARShow
ARShow
 首页 » 资源教程 » Unity3D教程

Unity Shader 使用鼠标绘制自由多边形

2017年01月04日 19:22:4519940蛮牛网

前言

在前面的文章中,我们已经了解了怎样使用 Shader来绘制简单的点和线,本文将延续上次的话题,讲述一下如何在场景中使用Unity Shader绘制自由多边形。

本文所述的程序,支持在地图中用鼠标点击,确定多边形顶点,并且绘制多边形的边,在内部填充半透明的颜色。先展示一下最终效果,完整的工程在文末的附件中。

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第1张

1、开发工具介绍

Windows 10(64位)

Unity 5.4.1(64位)

2、建立工程

首先建立一个新工程,命名为Polygon,并创建一个Scene。在场景中新建一个Plane,该Plane是默认带有碰撞体的,这个碰撞体必须有,因为我们在后边使用鼠标选取位置的时候,涉及到碰撞检测。给该Plane加上贴图。

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第2张

 

3、核心代码实现

3.1  Polygon.cs脚本中实现的是鼠标点击和向shader传递信息的功能

(1)为了实现鼠标点选场景中的3D位置,需要使用射线

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第3张


 

(2)向shader传递顶点的位置和数量

 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第4张


 

(3)将鼠标点击的位置转化为屏幕坐标

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第5张

 

3.2 Polygon.shader中实现多边形的绘制功能

(1)计算两点之间的距离函数

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第6张


 

(2)绘制线段的函数

 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第7张


 

(3)绘制多边形的函数

 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第8张

 

4、完整的C#脚本和Shader代码

Ploygon.cs

Polygon.shader

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第9张


 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第10张


 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第11张


 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第12张

 

5、运行效果

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第13张

 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第14张

 

Unity Shader 使用鼠标绘制自由多边形 Unity3D教程 第15张

 

小结

本文介绍的是关于Unity Shader的一种基本应用。使用了简单的绘制技术,完成了在场景中进行自由多边形区域的选择功能。

评论列表暂无评论
发表评论