许多RTS游戏通过在所选单元周围画一个圆圈来显示距离(攻击距离,移动距离,视线等)。如果地形是平坦的,这可以通过使用圆形纹理拉伸四轴来完成。如果不是这种情况,那么四轴很可能会被夹在山丘或其它几何体后面。那么怎么样我们可以在复杂的对象周围绘制圆圈。
a.尽管处理了每一块几何体,但这种技术低面向地形。因此,第一步是在Unity 种设置地形,但不是使用模型,我们将在Unity编辑器中创建一个。
b.创建一个shader命名为RadiusShader,并创建相关材质为RadiusMat.
c.创建一个terrains或者下载一个,terrains是Unity中的特殊对象,纹理映射的方式与传统的3D模型不同,我们无法从shader提供_MainTex,因为它需要直接从地形本身提供,为此,选择"Paint Texture",然后单击 "Add Texture....";
d.双击打开shader移走_Glossiness和_Metallc属性同时加入下面四个属性
Properties {
_Color ("Color", Color) = (1,1,1,1)
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_Center("Center",Vector) = (200,0,200,0)
_Radius("Radius",Float) = 100
_RadiusColor("Radius Color",Color) = (1,0,0,1)
_RadiusWidth("Radius Width",Flo