Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public TerrainChunk(Vector2 coord, int size, Transform parent, Material material) {
- position = coord * size;
- bounds = new Bounds(position,Vector2.one * size);
- Vector3 positionV3 = new Vector3(position.x,0,position.y);
- meshObject = new GameObject("Terrain Chunk");
- meshRenderer = meshObject.AddComponent<MeshRenderer>();
- meshFilter = meshObject.AddComponent<MeshFilter>();
- meshCollider = meshObject.AddComponent<MeshCollider>();
- meshRenderer.material = material;
- meshObject.transform.position = positionV3;
- meshObject.transform.parent = parent;
- SetVisible(false);
- mapGenerator.RequestMapData(OnMapDataReceived);
- }
- void OnMapDataReceived(MapData mapData) {
- mapGenerator.RequestMeshData (mapData, OnMeshDataReceived);
- }
- void OnMeshDataReceived(MeshData meshData) {
- Mesh mesh = meshData.CreateMesh ();
- meshFilter.mesh = mesh;
- meshCollider.sharedMesh = mesh;
- }
- public void UpdateTerrainChunk() {
- float viewerDstFromNearestEdge = Mathf.Sqrt(bounds.SqrDistance (viewerPosition));
- bool visible = viewerDstFromNearestEdge <= maxViewDst;
- SetVisible (visible);
- }
- public void SetVisible(bool visible) {
- meshObject.SetActive (visible);
- }
- public bool IsVisible() {
- return meshObject.activeSelf;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement