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 } } } }