Fix : 에디터 UI 동적 리빌드 시 PropertyField 바인딩 누락 수정 및 삭제 확인 팝업 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
user 2026-02-24 00:05:06 +09:00
parent 802bea169d
commit e9739076b0
4 changed files with 32 additions and 51 deletions

View File

@ -91,6 +91,8 @@ public class AvatarOutfitControllerEditor : Editor
{
avatarsContainer.Add(CreateAvatarElement(i));
}
avatarsContainer.Bind(serializedObject);
}
private VisualElement CreateAvatarElement(int avatarIndex)
@ -263,10 +265,6 @@ public class AvatarOutfitControllerEditor : Editor
}
private void DeleteAvatar(int index)
{
var avatar = controller.avatars[index];
if (EditorUtility.DisplayDialog("아바타 삭제",
$"아바타 '{avatar.avatarName}'을(를) 삭제하시겠습니까?", "삭제", "취소"))
{
Undo.RecordObject(target, "Delete Avatar");
controller.avatars.RemoveAt(index);
@ -274,7 +272,6 @@ public class AvatarOutfitControllerEditor : Editor
serializedObject.Update();
RebuildAvatarList();
}
}
private void SwapAvatars(int a, int b)
{
@ -300,10 +297,6 @@ public class AvatarOutfitControllerEditor : Editor
}
private void DeleteOutfit(int avatarIndex, int outfitIndex)
{
var outfit = controller.avatars[avatarIndex].outfits[outfitIndex];
if (EditorUtility.DisplayDialog("의상 삭제",
$"의상 '{outfit.outfitName}'을(를) 삭제하시겠습니까?", "삭제", "취소"))
{
Undo.RecordObject(target, "Delete Outfit");
var outfits = new List<AvatarOutfitController.OutfitData>(controller.avatars[avatarIndex].outfits);
@ -313,7 +306,6 @@ public class AvatarOutfitControllerEditor : Editor
serializedObject.Update();
RebuildAvatarList();
}
}
#endregion

View File

@ -318,17 +318,12 @@ public class CameraManagerEditor : Editor
}
private void DeletePreset(int index)
{
var preset = manager.cameraPresets[index];
if (EditorUtility.DisplayDialog("프리셋 삭제",
$"프리셋 '{preset.presetName}'을(를) 삭제하시겠습니까?", "삭제", "취소"))
{
Undo.RecordObject(target, "Delete Camera Preset");
manager.cameraPresets.RemoveAt(index);
EditorUtility.SetDirty(target);
RebuildPresetList();
}
}
private void SwapPresets(int a, int b)
{

View File

@ -85,6 +85,8 @@ public class EventControllerEditor : Editor
{
eventsContainer.Add(CreateEventGroupElement(i));
}
eventsContainer.Bind(serializedObject);
}
private VisualElement CreateEventGroupElement(int index)
@ -155,10 +157,6 @@ public class EventControllerEditor : Editor
}
private void DeleteEvent(int index)
{
var group = controller.eventGroups[index];
if (EditorUtility.DisplayDialog("이벤트 삭제",
$"이벤트 '{group.groupName}'을(를) 삭제하시겠습니까?", "삭제", "취소"))
{
Undo.RecordObject(target, "Delete Event Group");
controller.eventGroups.RemoveAt(index);
@ -166,7 +164,6 @@ public class EventControllerEditor : Editor
serializedObject.Update();
RebuildEventList();
}
}
private void SwapEvents(int a, int b)
{

View File

@ -87,6 +87,8 @@ public class ItemControllerEditor : Editor
{
itemsContainer.Add(CreateItemGroupElement(i));
}
itemsContainer.Bind(serializedObject);
}
private VisualElement CreateItemGroupElement(int index)
@ -166,10 +168,6 @@ public class ItemControllerEditor : Editor
}
private void DeleteItem(int index)
{
var group = controller.itemGroups[index];
if (EditorUtility.DisplayDialog("그룹 삭제",
$"그룹 '{group.groupName}'을(를) 삭제하시겠습니까?", "삭제", "취소"))
{
Undo.RecordObject(target, "Delete Item Group");
controller.itemGroups.RemoveAt(index);
@ -177,7 +175,6 @@ public class ItemControllerEditor : Editor
serializedObject.Update();
RebuildItemList();
}
}
private void SwapItems(int a, int b)
{