public int AddPath(int locationX, int locationY) { List<MapPathSetting> paths = new List<MapPathSetting>(MapData.Paths); MapPathSetting path = new MapPathSetting(); path.ColorR = Random.value; path.ColorG = Random.value; path.ColorB = Random.value; MapWaypointSetting waypoint = new MapWaypointSetting(); waypoint.X = locationX; waypoint.Y = locationY; path.Waypoints = new MapWaypointSetting[] { waypoint }; paths.Add(path); MapData.Paths = paths.ToArray(); Modify(EditorEvent.MAP_UPDATE_PATHS, null); return paths.Count - 1; }
public void Load(int pathIndex, MapPathSetting data, Operate operateSet, Operate operateRemove) { this.pathIndex = pathIndex; this.operateSet = operateSet; this.operateRemove = operateRemove; ColorField.color = new Color(data.ColorR, data.ColorG, data.ColorB); for (int i = WaypointGroup.transform.childCount - 1; i >= 0; --i) GameObject.DestroyImmediate(WaypointGroup.transform.GetChild(i).gameObject); int lineHeight = 24; for (int i = 0; i < data.Waypoints.Length; ++i) { MapWaypointSetting waypointSetting = data.Waypoints[i]; GameObject WaypointEntry = GameObject.Instantiate(WaypointEntryPrefab); WaypointEntry.transform.SetParent(WaypointGroup.transform, false); WaypointEntry.transform.localPosition = new Vector3(0, -i * lineHeight); UIBase.FindUIObject<Text>(WaypointEntry, "Text").text = string.Format("{0}:({1}, {2})", i, waypointSetting.X, waypointSetting.Y); UIBase.FindUIObject<Button>(WaypointEntry, "ResetButton").onClick.AddListener(OnResetPoint(i)); UIBase.FindUIObject<Button>(WaypointEntry, "RemoveButton").onClick.AddListener(OnRemovePoint(i)); } gameObject.GetComponent<LayoutElement>().minHeight = lineHeight * data.Waypoints.Length + 12; }