Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
 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);
 }