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

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

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

前言

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

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

1、开发工具介绍

Windows 10(64位)

Unity 5.4.1(64位)

2、建立工程

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

 

3、核心代码实现

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

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


 

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

 


 

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

 

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

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


 

(2)绘制线段的函数

 


 

(3)绘制多边形的函数

 

 

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

Ploygon.cs

Polygon.shader


 


 


 

 

5、运行效果

 

 

 

小结

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

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