// Use this for initialization void Start() { mapSize = MyGameScript.getInstance().sizeTerrain; myTerrain = new GameObject[mapSize, mapSize]; myTerrainScript = new MyTerrainScript[mapSize, mapSize]; // myMaterial.SetColor("_Color1",new Color(0,1,1,0.5f)); float[,] map = PreMapGenerator.generateMap(width, height, mySeed, totalRoads); MyGameScript.getInstance().myMap = map; MyGameScript.getInstance().width = width; MyGameScript.getInstance().height = height; myMaterial.SetInt("_init", 1); }
private int expectMyLOD() { Vector3 pos = MyGameScript.getInstance().myCurPos; pos = pos - position; float dist = pos.sqrMagnitude; for (int i = 0; i < myLODs.Length; i++) { if (dist < myLODs[i] * myLODs[i]) { return(i); } } return(myLODs.Length); }
// Update is called once per frame void Update() { MyGameScript.getInstance().myCurPos = cam.transform.position; int temp = expectMyLOD(); if (currentLod != temp || temp == myLODs.Length) { currentLod = temp; Debug.Log("My Current LOD : " + position + " : " + currentLod); if (currentLod == myLODs.Length) { setActiveState(false); } else { generateMesh(currentLod); } } }
// Use this for initialization void Start() { meshFilter = GetComponent <MeshFilter>(); meshRenderer = GetComponent <MeshRenderer>(); maxHieght = 10f; currentLod = -1; MyGameScript.getInstance().myLODs = myLODs; rand = new System.Random(); position = transform.position; //transform.position=Vector3.zero; cam = Camera.main; //TODO Do the changes here //generateObjects(); }
private void generateMesh(int lod) { lod = myLODs.Length - lod; Debug.Log("Generate at : " + transform.position); //meshFilter.mesh = MeshGenerator.generateMesh(NormalMapsScript.GenerateNoiseMap(31, 31, 10.3f, true), 0, 0, maxHieght, lod).createMesh(); float[,] map = new float[101, 101]; int xt = (int)transform.position.x + MyGameScript.getInstance().width / 2; int yt = (int)transform.position.z + MyGameScript.getInstance().height / 2; for (int y = -50; y <= 50; y++) { for (int x = -50; x <= 50; x++) { map[x + 50, y + 50] = MyGameScript.getInstance().myMap[xt + x, yt + y]; } } meshFilter.mesh = MeshGenerator.generateMesh(map, 0, 0, 1, lod).createMesh(); if (!objectGenerated) { generateObjects(map); objectGenerated = false; } }