// WL826_WeaponPrefabSetup.cs — 무기 모델 프리팹 생성 + Addressables 등록 (에디터 · 멱등) : 망치(두손 해머) 추가 // PD 2026-10-09 「해머는 무기가 제대로 보이지 않아(방패를 들고 있는 모션)」 → 둔기방패 직업의 방패·메이스 대신 두손 해머 모델 1개 // unity command run_script --file AgentScripts/WL826_WeaponPrefabSetup.cs --entry WL826_WeaponPrefabSetup.Run --timeout 120 using System.Text; using UnityEditor; using UnityEditor.AddressableAssets; using UnityEditor.AddressableAssets.Settings; using UnityEngine; public static class WL826_WeaponPrefabSetup { static readonly string[][] Models = { new[] { "Assets/ResWork/PurePoly/Fantasy RPG Weapons/Meshes/PP_Theme_01_Hammer_001.fbx", "Assets/Res_Addr/Weapon/PP_Theme_01_Hammer_001.prefab" }, new[] { "Assets/ResWork/PurePoly/Fantasy RPG Weapons/Meshes/PP_Theme_02_Hammer_001.fbx", "Assets/Res_Addr/Weapon/PP_Theme_02_Hammer_001.prefab" }, }; public static string Run() { var sb = new StringBuilder(); var settings = AddressableAssetSettingsDefaultObject.Settings; foreach (var m in Models) { if (AssetDatabase.LoadAssetAtPath(m[1]) == null) { var fbx = AssetDatabase.LoadAssetAtPath(m[0]); if (fbx == null) { sb.Append("모델 없음 ").Append(m[0]).Append(" · "); continue; } var inst = (GameObject)PrefabUtility.InstantiatePrefab(fbx); inst.name = System.IO.Path.GetFileNameWithoutExtension(m[1]); PrefabUtility.SaveAsPrefabAsset(inst, m[1]); Object.DestroyImmediate(inst); sb.Append("프리팹 생성 ").Append(m[1]).Append(" · "); } if (settings != null) { var guid = AssetDatabase.AssetPathToGUID(m[1]); var e = settings.CreateOrMoveEntry(guid, settings.DefaultGroup, false, false); e.address = m[1]; sb.Append("주소 ").Append(m[1]).Append(" · "); } } if (settings != null) settings.SetDirty(AddressableAssetSettings.ModificationEvent.EntryMoved, null, true, true); AssetDatabase.SaveAssets(); return sb.ToString(); } }