#if UNITY_EDITOR using UnityEditor; using UnityEngine; using System.Collections.Generic; public class GoogleSheetDiffViewer : EditorWindow { private List _diffs; private bool _isReversed; // true: 현재 → 선택버전, false: 변경 전 → 변경 후 private Vector2 _scroll; public static void ShowWindow(List diffs, bool isReversed = false) { var window = GetWindow("Google Sheet 변경점"); window._diffs = diffs; window._isReversed = isReversed; window.Show(); } private void OnGUI() { EditorGUILayout.LabelField("변경된 항목", EditorStyles.boldLabel); EditorGUILayout.Space(); if (_diffs == null || _diffs.Count == 0) { EditorGUILayout.HelpBox("변경 사항이 없습니다.", MessageType.Info); return; } // 헤더 EditorGUILayout.BeginHorizontal("box"); EditorGUILayout.LabelField("시트", EditorStyles.boldLabel, GUILayout.Width(80)); EditorGUILayout.LabelField("행", EditorStyles.boldLabel, GUILayout.Width(40)); EditorGUILayout.LabelField("필드", EditorStyles.boldLabel, GUILayout.Width(100)); GUIStyle oldStyle = new GUIStyle(EditorStyles.label); oldStyle.normal.textColor = Color.green; EditorGUILayout.LabelField(_isReversed ? "현재 버전" : "변경 전", oldStyle, GUILayout.Width(100)); GUIStyle newStyle = new GUIStyle(EditorStyles.label); newStyle.normal.textColor = new Color(0.3f, 0.75f, 1.0f); EditorGUILayout.LabelField(_isReversed ? "선택한 버전" : "변경 후", newStyle, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); _scroll = EditorGUILayout.BeginScrollView(_scroll); foreach (var diff in _diffs) { EditorGUILayout.BeginHorizontal("box"); EditorGUILayout.LabelField(diff.Sheet, GUILayout.Width(80)); EditorGUILayout.LabelField(diff.RowIndex.ToString(), GUILayout.Width(40)); EditorGUILayout.LabelField(diff.Field, GUILayout.Width(100)); string left = _isReversed ? diff.NewValue : diff.OldValue; string right = _isReversed ? diff.OldValue : diff.NewValue; EditorGUILayout.LabelField(left, oldStyle, GUILayout.Width(100)); EditorGUILayout.LabelField(right, newStyle, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); } } #endif