Esempio 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);
        }
    }
Esempio n. 2
0
    public void saveData()
    {
        LayerTerrainGroups groups = configObject.GetGroups;

        for (int idx = 0; idx < groups.datas.Count; ++idx)
        {
            groups.datas[idx].SaveData();
        }
    }
Esempio n. 3
0
    override public void OnInspectorGUI()
    {
        EditorGUILayout.BeginVertical();
        EditorGUILayout.Space();
        EditorGUILayout.Space();
        EditorGUILayout.EndVertical();

        EditorGUI.BeginChangeCheck();
        EditorGUILayout.PropertyField(DataFile);
        if (DataFile != null)
        {
            hasConfige = DataFile.objectReferenceValue != null;
            if (hasConfige)
            {
                DataRefObject = new SerializedObject(DataFile.objectReferenceValue);
                LayerTerrainObject TerrainObject = DataFile.objectReferenceValue as LayerTerrainObject;
                objRef          = TerrainObject;
                groupsRefObject = TerrainObject.GetGroups;
                colors          = DataRefObject.FindProperty("Colors");
            }
        }
        if (!hasConfige)
        {
            return;
        }
        EditorGUILayout.PropertyField(terrainMatiera);
        GroupSelectIndex = GUILayout.Toolbar(GroupSelectIndex, icons, EditorStyles.toolbarButton);
        drawGroup(GroupSelectIndex);
        if (GUILayout.Button(refreshIcon))
        {
            targetObject.Refresh();
        }

        if (GUILayout.Button(savaIcon))
        {
            targetObject.saveData();
            EditorUtility.SetDirty(DataFile.objectReferenceValue);
        }
        if (EditorGUI.EndChangeCheck())
        {
            obj.ApplyModifiedProperties();
        }
    }