public TerrianColliderChunk(int meshLod, MapDataGen mapGenerator, Transform parent, Vector2i coord, Vector3 pos) { this.coord = coord; meshObject = new GameObject("Collider Chunk " + coord.ToString()); meshCollider = meshObject.AddComponent <MeshCollider>(); meshObject.transform.position = pos; meshObject.transform.parent = parent; meshObject.transform.localScale = Vector3.one; isWaitMapData = true; colliderMesh = new LODMesh(mapGenerator, meshLod, OnMeshDataReceived); mapGenerator.RequestColliderMapData(coord, OnMapDataReceived); //TODO request mesh }
void Start() { mapGenerator = FindObjectOfType <MapDataGen>(); mapGenerator.Init(); colliderMgr = TerrianColliderMgr.Instance; var colMgrTrans = new GameObject("TerrianColliders").transform; colMgrTrans.parent = transform; colMgrTrans.localPosition = Vector3.zero; colliderMgr.mapGenerator = mapGenerator; colliderMgr.meshLod = coliderMeshLod; colliderMgr.Init(colMgrTrans, viewer, MapDataGen.CHUNK_SIZE, coliderViewDist, coliderRatainDist); colliderMgr.CreateChunks(); //meshMgr.CreateChunks(); }
public LODMesh(MapDataGen mapGenerator, int lod, System.Action updateCallback) { this.lod = lod; this.updateCallback = updateCallback; this.mapGenerator = mapGenerator; }