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 saveData() { LayerTerrainGroups groups = configObject.GetGroups; for (int idx = 0; idx < groups.datas.Count; ++idx) { groups.datas[idx].SaveData(); } }
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(); } }