コード例 #1
0
        /// <summary>
        /// 创建紫色杀伤盒
        /// </summary>
        /// <param name="id"> 命令ID,用作字典key </param>
        /// <param name="list">底面四点链表</param>
        /// <param name="lower">下限高度</param>
        /// <param name="Ceiling">上限高度</param>
        public void CreateKillBox(int id, List <Vector3> list, float lower, float Ceiling, Color Fillcolor, Color BoradColor)
        {
            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);                                                              // 创建2个meshPrefab加入字典

            // 第一个杀伤盒
            MeshFilter meshFilter1 = meshList[0].GetComponent <MeshFilter>();                        // 获取meshfilter

            meshList[0].GetComponent <MeshRenderer>().material.color = Fillcolor;
            Vector3[] vector3s1 = PhysicsMath.CheckVector(list);                                     // 使数组逆时针排序
            DrawTriangles.DrawPolygon(vector3s1, lower, meshFilter1, lineRenderers1, BoradColor);    // 画出图形

            // 第二个杀伤盒
            MeshFilter meshFilter2 = meshList[1].GetComponent <MeshFilter>();                        // 获取meshfilter

            meshList[1].GetComponent <MeshRenderer>().material.color = Fillcolor;

            List <Vector3> CeilingList = new List <Vector3>();   // 中层顶点集合

            foreach (var item in list)
            {
                CeilingList.Add(item + Vector3.up * lower);
            }

            Vector3[] vector3s2 = PhysicsMath.CheckVector(CeilingList);                                     // 使数组逆时针排序
            DrawTriangles.DrawPolygon(vector3s2, Ceiling - lower, meshFilter2, lineRenderers2, BoradColor); // 画出图形
        }
コード例 #2
0
        /// <summary>
        /// 创建扇形防空区
        /// </summary>
        /// <param name="id"> 命令ID,用作字典key </param>
        /// <param name="origin">起始点</param>
        /// <param name="tarPoint">水平最远距离点</param>
        /// <param name="alpha">横向张角</param>
        /// <param name="theta">纵向张角</param>
        public void CreateSector(int id, Vector3 origin, Vector3 tarPoint, float alpha, float theta, Color Fillcolor, Color BoradColor)
        {
            LineRenderer[]    lineRenderers = new LineRenderer[4];
            List <GameObject> meshList      = GetMeshPrefab(lineRenderers, 1);

            meshDic.Add(id, meshList);
            MeshFilter meshFilter = meshList[0].GetComponent <MeshFilter>();

            meshList[0].GetComponent <MeshRenderer>().material.color = Fillcolor;

            Vector3[] vertices = PhysicsMath.GetSectorPoints_2(origin, tarPoint, alpha, theta);
            DrawTriangles.DrawPolygon(vertices, meshFilter, lineRenderers, BoradColor);
        }
コード例 #3
0
        /// <summary>
        /// 创建通用多边形区域
        /// </summary>
        /// <param name="id"> 命令ID,用作字典key </param>
        /// <param name="list">下底面点链表</param>
        /// <param name="height">高度</param>
        public void CreatePolygon(int id, List <Vector3> list, 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[] vector3s = PhysicsMath.CheckVector(list);                                 // 使数组逆时针排序
            DrawTriangles.DrawPolygon(vector3s, height, meshFilter, lineRenderers, BoradColor); // 画出图形
        }