using System.Collections.Generic; using BitStrap; using UnityEngine; using uNature.Core.FoliageClasses; public class StartEditGrass : MonoBehaviour { public string editLayer = "Imposter"; public string defaultLayer = "Terrain"; public GameObject foliageManager; public List terrains = new List(); public string defaultLayerUnderwater = "Default"; public List terrainsUnderwater = new List(); public static bool getMapPixels = true; private void Awake() { FinishEdit(); } [Button] public void StartEdit() { foliageManager.transform.localPosition = new Vector3(foliageManager.transform.localPosition.x, 0f, foliageManager.transform.localPosition.z); foreach (GameObject terrain in terrains) { terrain.layer = LayerMask.NameToLayer(editLayer); } foreach (GameObject item in terrainsUnderwater) { item.layer = LayerMask.NameToLayer(editLayer); } getMapPixels = true; } [Button] public void FinishEdit() { foliageManager.transform.localPosition = new Vector3(foliageManager.transform.localPosition.x, 0f, foliageManager.transform.localPosition.z); foreach (GameObject terrain in terrains) { if (terrain != null) { terrain.layer = LayerMask.NameToLayer(defaultLayer); } } foreach (GameObject item in terrainsUnderwater) { if (item != null) { item.layer = LayerMask.NameToLayer(defaultLayerUnderwater); } } getMapPixels = false; } [Button] public void RemoveUnwantedGrassTextures() { FoliageManagerInstance[] componentsInChildren = GetComponentsInChildren(); GameController gameController = Object.FindObjectOfType(); for (int i = 0; i < gameController.grassIds.Count; i++) { Debug.Log("grassIds: " + gameController.grassIds[i]); } for (int j = 0; j < componentsInChildren.Length; j++) { for (int k = 0; k < componentsInChildren[j]._serializedGrassMaps.Count; k++) { gameController.CheckGrassMapAndResize(componentsInChildren[j]._serializedGrassMaps[k]); } } } }