Unity3D 绘制指示区域(一)


游戏角色常常会需要绘制一些自身相关的范围标志。例如巡逻的视野范围,攻击的伤害范围,机关的预警范围等。现在希望制作一个范围绘制器,能选择方形、扇形或者环形,并配置相应的参数,完成精确的范围绘制。

问题分析

绘制指示范围最大的特点是精确。例如策划配置了夹角120度、攻击半径为5的扇形,那么角色稍稍站在这个范围之外,就不应该受到伤害。通常的做法是通过代码控制模型面片的形状,进而控制绘制范围。另一方面,面片也要支持自定材质,这样才能满足美术的表现需求。

编写框架类

明确了想法,我们首先创建RangeShower.cs,并创建对应的类RangeShower,在其中添加updateMesh函数,作为更新Mesh的函数入口,并在Update中调用它。

这里我重写了Update函数,在编辑器非运行模式下,会每帧刷新Mesh,做Application.isPlaying判断主要是出于性能的考虑。updateMesh函数主要用于根据参数创建对应的面片,参数分别为形状类型,角度,半径,内切半径。最后一个参数用于环形,即中空的圆形或扇形,内切半径即为小圆半径。

本文出自 松阳论道 转载必须注明出处

http://blog.songyang.net/6245.html

说点什么吧...

电子邮件地址不会被公开。 必填项已用*标注