/// <summary> /// 创建两个圆柱,近距火力支援等待空域 /// </summary> /// <param name="id"> 命令ID,用作字典key </param> /// <param name="point">低点圆柱的底面圆心点</param> /// <param name="radius">半径</param> /// <param name="height">圆柱高度</param> /// <param name="heightDifference">两个圆柱的高度差</param> public void DoubleCylinder(int id, Vector3 point, float radius, float height, float heightDifference, Color Fillcolor, Color BoradColor) { //CreateCylinder(id, point, radius, height, color); //Vector3 highPoint = point + Vector3.up * (height + heightDifference); //CreateCylinder(++id, highPoint, radius, height, color); LineRenderer[] lineRenderers1 = new LineRenderer[4]; LineRenderer[] lineRenderers2 = new LineRenderer[4]; List <GameObject> meshList = GetMeshPrefab(lineRenderers1, 1); meshList.Add(GetMeshPrefab(lineRenderers2, 1)[0]); meshDic.Add(id, meshList); // 加入字典 // 下面圆柱 MeshFilter meshFilter1 = meshList[0].GetComponent <MeshFilter>(); meshList[0].GetComponent <MeshRenderer>().material.color = Fillcolor; Vector3[] vertices1 = PhysicsMath.GetCirclePoints(point, radius); DrawTriangles.DrawCylinder(vertices1, height, meshFilter1, lineRenderers1, BoradColor); // 上面圆柱 Vector3 highPoint = point + Vector3.up * (height + heightDifference); MeshFilter meshFilter2 = meshList[1].GetComponent <MeshFilter>(); meshList[1].GetComponent <MeshRenderer>().material.color = Fillcolor; Vector3[] vertices2 = PhysicsMath.GetCirclePoints(highPoint, radius); DrawTriangles.DrawCylinder(vertices2, height, meshFilter2, lineRenderers1, BoradColor); }
public Dictionary <int, List <GameObject> > meshDic = new Dictionary <int, List <GameObject> >(); // 命令与mesh对应字典 /// <summary> /// 创建圆柱形区域 /// </summary> /// <param name="id"> 命令ID,用作字典key </param> /// <param name="point"> 圆心点 </param> /// <param name="radius"> 半径 </param> /// <param name="height"> 高度 </param> public void CreateCylinder(int id, Vector3 point, float radius, float height, Color Fillcolor, Color BoradColor) { LineRenderer[] lineRenderers = new LineRenderer[4]; List <GameObject> meshList = GetMeshPrefab(lineRenderers, 1); // 获取mesh meshDic.Add(id, meshList); // 加入字典 MeshFilter meshFilter = meshList[0].GetComponent <MeshFilter>(); // 获取meshfilter meshList[0].GetComponent <MeshRenderer>().material.color = Fillcolor; Vector3[] vertices = PhysicsMath.GetCirclePoints(point, radius); // 获取点集 DrawTriangles.DrawCylinder(vertices, height, meshFilter, lineRenderers, BoradColor); // 画出图形 }