Unity 实用教程之 绘制实体扇形范围攻击线

时间:2024-10-14 21:19:56

1、打开Unity,新建一个空工程,具体如下图

Unity 实用教程之 绘制实体扇形范围攻击线

2、在场景中,添加 Plane 和 Cube,并且合理布局,具体如下图

Unity 实用教程之 绘制实体扇形范围攻击线

3、在工程中,添加一个脚本,双击脚本或右键 Open C# Project 打开脚本,具体如下图

Unity 实用教程之 绘制实体扇形范围攻击线

4、脚本代码和代码解释如下图

Unity 实用教程之 绘制实体扇形范围攻击线
Unity 实用教程之 绘制实体扇形范围攻击线

5、脚本的具体内容如下:usingSystem.Colle罕铞泱殳ctions;usingSystem.Collections.Generic;usingUnityEngine;publicclassDrawSectorSolid:MonoBehaviour{ publicstaticGameObjectgo; publicstaticMeshFiltermf; publicstaticMeshRenderermr; publicstaticShadershader; //Updateiscalledonceperframe voidUpdate(){ if(Input.GetKeyDown(KeyCode.A)){ToDrawSectorSolid(transform,transform.localPosition,60,3); }} privatestaticGameObjectCreateMesh(List<Vector3>vertices) { int[]triangles; Meshmesh=newMesh();inttriangleAmount=vertices.Count-2; triangles=newint[3*triangleAmount];//根据三角形的个数,来计算绘制三角形的顶点顺序(索引) //顺序必须为顺时针或者逆时针 for(inti=0;i<triangleAmount;i++) { triangles[3*i]=0;//固定第一个点 triangles[3*i+1]=i+1; triangles[3*i+2]=i+2; }if(go==null) { go=newGameObject("mesh"); go.transform.position=newVector3(0,0.1f,0);//让绘制的图形上升一点,防止被地面遮挡 mf=go.AddComponent<MeshFilter>(); mr=go.AddComponent<MeshRenderer>(); shader=Shader.Find("Unlit/Color"); }mesh.vertices=vertices.ToArray(); mesh.triangles=triangles;mf.mesh=mesh; mr.material.shader=shader; mr.material.color=Color.red;returngo; }//绘制实心扇形publicstaticvoidToDrawSectorSolid(Transformt,Vector3center,floatangle,floatradius) { intpointAmount=100;//点的数目,值越大曲线越平滑 floateachAngle=angle/pointAmount; Vector3forward=t.forward; List<Vector3>vertices=newList<Vector3>(); vertices.Add(center);for(inti=1;i<pointAmount-1;i++) { Vector3pos=Quaternion.Euler(0f,-angle/2+eachAngle*(i-1),0f)*forward*radius+center; vertices.Add(pos); }CreateMesh(vertices); }}

6、脚本编译正确后,回到Unity界面,把脚本挂载到物体 Cube 上,具体如下图

Unity 实用教程之 绘制实体扇形范围攻击线

7、运行场景,按下 A 键,即可看到绘制出的三角形区域,具体如下图

Unity 实用教程之 绘制实体扇形范围攻击线

8、到此,《Unity 实用教程之 绘制实体扇形范围攻击线》讲解结束,谢谢

© 手抄报圈