private void DrawWaveList(float baseY) { if (ReferenceEquals(_waveController, null)) { return; } //RefreshWaveList(); var waves = Generator.Waves; var innerRect = new Rect(0, baseY, ListUtils.GetWaveListWidth(0, MainButtonWidth, MiniButtonSize, Space, 20, false), ListUtils.GetScrollHeight(waves.Count + 1, Space, MainButtonHeight)); var scrollRect = new Rect(0, baseY, ListUtils.GetWaveListWidth(0, MainButtonWidth, MiniButtonSize, Space, 20, true), position.height - baseY); using (new GuiColor(new Color(0.7f, 0.7f, 0.7f))) GUI.Box(new Rect(innerRect.x, innerRect.y, innerRect.width, scrollRect.height), GUIContent.none); _waveListScrollPosition = GUI.BeginScrollView(scrollRect, _waveListScrollPosition, innerRect); for (int i = 0; i < waves.Count; i++) { var wave = waves[i]; DrawWaveHeader(i, wave, baseY, waves.Count); } if (GUI.Button(new Rect(Space, baseY + waves.Count * 55 + Space, MainButtonWidth, MainButtonHeight), "New wave")) { AddNewWave(); } GUI.EndScrollView(); if (!ReferenceEquals(_selectedWave, null)) { DrawWaveInfo(ListUtils.GetWaveListWidth(0, MainButtonWidth, MiniButtonSize, Space, 20, true) + Space, baseY); } }