コード例 #1
0
 public void SetHexagons(List <CVector3> listHexagon, string strTextureFile = null)
 {
     if (!this.m_bPrepared)
     {
         this.m_listHexagonCached    = listHexagon;
         this.m_strTextureFileCached = strTextureFile;
     }
     else
     {
         this.m_listVertex.Clear();
         this.m_listVertexIndex.Clear();
         this.m_listUV.Clear();
         if (listHexagon != null && this.m_MeshFilter != null)
         {
             this.m_MeshFilter.mesh.Clear();
             if (!string.IsNullOrEmpty(strTextureFile))
             {
                 //如果已经完成下载的列表不包括贴图,就下载然后存到缓存
                 if (!this.m_dicTextureAssetRequest.ContainsKey(strTextureFile) || !this.m_dicTextureAssetRequest[strTextureFile].IsFinished)
                 {
                     IAssetRequest value = ResourceManager.singleton.LoadTexture(strTextureFile, new AssetRequestFinishedEventHandler(this.LoadFinishedEventHandler), AssetPRI.DownloadPRI_Plain);
                     this.m_dicTextureAssetRequest[strTextureFile] = value;
                 }
                 else
                 {
                     this.LoadFinishedEventHandler(this.m_dicTextureAssetRequest[strTextureFile]);
                 }
             }
             foreach (CVector3 current in listHexagon)
             {
                 Hexagon.FillHexagon(current.nRow, current.nCol, this.m_fY, ref this.m_listVertex, ref this.m_listVertexIndex, ref this.m_listUV);
             }
             //重新绘画计算mesh
             this.m_MeshFilter.mesh.vertices  = this.m_listVertex.ToArray();
             this.m_MeshFilter.mesh.uv        = this.m_listUV.ToArray();
             this.m_MeshFilter.mesh.triangles = this.m_listVertexIndex.ToArray();
             this.m_MeshFilter.mesh.RecalculateNormals();
             if (this.m_MeshCollider != null)
             {
                 this.m_MeshCollider.sharedMesh = null;
                 this.m_MeshCollider.sharedMesh = this.m_MeshFilter.mesh;//重新修改meshcollider
             }
         }
     }
 }