public void AddTree(MyTreeInstance instance) { treeInstances.Add(instance); }
public void AddTreeInstance(MyTreeInstance tree) { terrainData.AddTree(tree); }
public void AddTreeInstance(MyTreeInstance tree) { terrainData.AddTree(tree); }
public void AddTree(MyTreeInstance instance) { treeInstances.Add(instance); }
public static void PlaceTrees(TerrainScript terrain, Vector3 position, Vector3 normal, int selectedTree) { if (terrain.treePrototypes.Count != 0) { if (true) { int num = 0; MyTreeInstance instance = new MyTreeInstance(); instance.position = position; instance.rotation = GetTreeRotation(normal); instance.color = GetTreeColor(); instance.lightmapColor = Color.white; instance.prototypeIndex = selectedTree; instance.widthScale = GetTreeWidth(); instance.heightScale = GetTreeHeight(); if (((Event.current.type != EventType.MouseDrag) && (brushSize <= 1f)) || TerrainFunctions.CheckTreeDistance(terrain.terrainData, instance.position, instance.prototypeIndex, spacing)) { terrain.AddTreeInstance(instance); num++; } Vector3 prototypeExtent = Vector3.one; prototypeExtent.y = 0f; float num2 = brushSize / ((prototypeExtent.magnitude * spacing) * 0.5f); int num3 =(int) ((num2 * num2) * 0.5f); num3 = Mathf.Clamp(num3, 0, 100); for (int i = 1; (i < num3) && (num < num3); i++) { Vector2 insideUnitCircle = UnityEngine.Random.insideUnitCircle; insideUnitCircle.x *= (brushSize*100) / terrain.getSizeOfMesh().x; insideUnitCircle.y *= (brushSize*100) / terrain.getSizeOfMesh().y; Vector3 off = new Vector3(insideUnitCircle.x, 0, insideUnitCircle.y); Vector3 pos = Vector3.Cross(normal, off); Vector3 position2 = position + pos; Vector3 nom = position2 - (position2 + normal*10); Ray ray = new Ray(position2, nom); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { //if (terrain.isInsideOfBounds(position2)) { if (true) { if (TerrainFunctions.CheckTreeDistance(terrain.terrainData, hit.point, instance.prototypeIndex, spacing)) { instance = new MyTreeInstance(); instance.position = hit.point; instance.rotation = GetTreeRotation(hit.normal); instance.color = GetTreeColor(); instance.lightmapColor = Color.white; instance.prototypeIndex = selectedTree; instance.widthScale = GetTreeWidth(); instance.heightScale = GetTreeHeight(); terrain.AddTreeInstance(instance); num++; } } } } } } }
public static void PlaceTrees(TerrainScript terrain, Vector3 position, Vector3 normal, int selectedTree) { if (terrain.treePrototypes.Count != 0) { if (true) { int num = 0; MyTreeInstance instance = new MyTreeInstance(); instance.position = position; instance.rotation = GetTreeRotation(normal); instance.color = GetTreeColor(); instance.lightmapColor = Color.white; instance.prototypeIndex = selectedTree; instance.widthScale = GetTreeWidth(); instance.heightScale = GetTreeHeight(); if (((Event.current.type != EventType.MouseDrag) && (brushSize <= 1f)) || TerrainFunctions.CheckTreeDistance(terrain.terrainData, instance.position, instance.prototypeIndex, spacing)) { terrain.AddTreeInstance(instance); num++; } Vector3 prototypeExtent = Vector3.one; prototypeExtent.y = 0f; float num2 = brushSize / ((prototypeExtent.magnitude * spacing) * 0.5f); int num3 = (int)((num2 * num2) * 0.5f); num3 = Mathf.Clamp(num3, 0, 100); for (int i = 1; (i < num3) && (num < num3); i++) { Vector2 insideUnitCircle = UnityEngine.Random.insideUnitCircle; insideUnitCircle.x *= (brushSize * 100) / terrain.getSizeOfMesh().x; insideUnitCircle.y *= (brushSize * 100) / terrain.getSizeOfMesh().y; Vector3 off = new Vector3(insideUnitCircle.x, 0, insideUnitCircle.y); Vector3 pos = Vector3.Cross(normal, off); Vector3 position2 = position + pos; Vector3 nom = position2 - (position2 + normal * 10); Ray ray = new Ray(position2, nom); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { //if (terrain.isInsideOfBounds(position2)) { if (true) { if (TerrainFunctions.CheckTreeDistance(terrain.terrainData, hit.point, instance.prototypeIndex, spacing)) { instance = new MyTreeInstance(); instance.position = hit.point; instance.rotation = GetTreeRotation(hit.normal); instance.color = GetTreeColor(); instance.lightmapColor = Color.white; instance.prototypeIndex = selectedTree; instance.widthScale = GetTreeWidth(); instance.heightScale = GetTreeHeight(); terrain.AddTreeInstance(instance); num++; } } } } } } }