public void Refresh() { colliedChunks.Clear(); ListGroups.Clear(); for (int idx = 0; idx < transform.childCount;) { GameObject obj = transform.GetChild(idx).gameObject; GameObject.DestroyImmediate(obj); } transform.DetachChildren(); if (configObject == null) { Debug.LogError("LayerTerrain Config Object null"); } LayerTerrainGroups groups = configObject.GetGroups; for (int idx = 0; idx < groups.datas.Count; ++idx) { groups.datas[idx].Refresh(); string name = groups.datas[idx].name; if (string.IsNullOrEmpty(name)) { name = "Group" + idx.ToString(); } GameObject group = new GameObject(name); group.layer = 8; group.transform.parent = transform; group.transform.localPosition = groups.datas[idx].worldPositon; SimTerrain.TerrainGroup groupCm = group.AddComponent <SimTerrain.TerrainGroup>(); groupCm.hideFlags = HideFlags.HideAndDontSave; groupCm.Init(configObject.GetColors, groups.chunk, groups.datas[idx], terrainMatrial); //ListGroups.Add(groupCm); } }
public void BrushTerrain(Ray ray) { showGim = true; for (int idx = 0; idx < transform.childCount; ++idx) { // ListGroups[idx].CastGroup(ray); SimTerrain.TerrainGroup group = transform.GetChild(idx).GetComponent <SimTerrain.TerrainGroup>(); group.CastGroup(ray, brush, colliedChunks, out HitPoint); } }
public bool TouchInTerrain(Ray ray, out int layerIndex) { for (int idx = 0; idx < transform.childCount; ++idx) { // ListGroups[idx].CastGroup(ray); SimTerrain.TerrainGroup group = transform.GetChild(idx).GetComponent <SimTerrain.TerrainGroup>(); if (group && group.TouchInGround(ray, out layerIndex)) { return(true); } } layerIndex = 0; return(false); }