47 lines
2.3 KiB
C#
47 lines
2.3 KiB
C#
// 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<GameObject>(m[1]) == null)
|
|
{
|
|
var fbx = AssetDatabase.LoadAssetAtPath<GameObject>(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();
|
|
}
|
|
}
|