public static Block45ChunkGo CreateChunkGo(IVxSurfExtractReq req, Transform parent = null) { if (req.FillMesh(null) == 0) { return(null); } Block45ChunkGo b45Go = VFGoPool <Block45ChunkGo> .GetGo(); req.FillMesh(b45Go._mf.mesh); // set material SurfExtractReqB45 b45ret = req as SurfExtractReqB45; if (b45ret != null) { List <Material> tmpMatList = new List <Material>(); for (int i = 0; i < b45ret.matCnt; i++) { tmpMatList.Add(_defMats[b45ret.materialMap[i]]); } b45Go._mr.sharedMaterials = tmpMatList.ToArray(); } if (parent != null) { b45Go.transform.parent = parent; } b45Go.gameObject.SetActive(true); return(b45Go); }
public static VFVoxelChunkGo CreateChunkGo(IVxSurfExtractReq req, Material mat = null, int layer = 0) { if (req.FillMesh(null) == 0) { return(null); } VFVoxelChunkGo vfGo = VFGoPool <VFVoxelChunkGo> .GetGo(); int nMesh = req.FillMesh(vfGo.Mf.sharedMesh); vfGo._bPrimal = true; if (mat != null) { vfGo.Mr.sharedMaterial = mat; } if (layer != 0) { vfGo.gameObject.layer = layer; } vfGo.gameObject.SetActive(true); while (nMesh > 0) { VFVoxelChunkGo subGo = VFGoPool <VFVoxelChunkGo> .GetGo(); nMesh = req.FillMesh(subGo.Mf.sharedMesh); subGo.transform.parent = vfGo.transform; subGo.transform.localScale = Vector3.one; subGo.transform.localPosition = Vector3.zero; if (mat != null) { subGo.Mr.sharedMaterial = mat; } if (layer != 0) { subGo.gameObject.layer = layer; } subGo.gameObject.SetActive(true); } return(vfGo); }
public void SetTransGo(IVxSurfExtractReq req, int faceMask) { if (TransvoxelGo != null) { VFGoPool <VFTransVoxelGo> .FreeGo(TransvoxelGo); TransvoxelGo = null; } if (faceMask != 0) { VFTransVoxelGo go = VFGoPool <VFTransVoxelGo> .GetGo(); req.FillMesh(go._mf.sharedMesh); go._faceMask = faceMask; go.transform.parent = transform; //go.transform.localScale = Vector3.one; go.transform.localPosition = Vector3.zero; go.gameObject.SetActive(true); TransvoxelGo = go; } }