Project_WL/AgentScripts/WL816b_Revert.cs

49 lines
2.6 KiB
C#
Raw Normal View History

// WL-816b — 되돌리기(C8) 실측: weaponEnabled_ = 0 이면 무기는 원본 100 % (에디트 모드)
using System.IO;
using System.Linq;
using System.Text;
using UnityEditor;
using UnityEngine;
using WL.Look.Character;
public static class WL816bRevert
{
public static void Run()
{
var sb = new StringBuilder();
const string SOP = "Assets/WL/Look/Character/Resources/WL/WLCharacterPaletteSettings.asset";
var so = AssetDatabase.LoadAssetAtPath<WLCharacterPaletteSettings>(SOP);
WLCharacterPaletteSettings.Invalidate();
int was = so.weaponEnabled_;
string[] test = { "Elven_Sword_01", "PP_Theme_10_Shield_003", "Dagger1" };
foreach (int flag in new[] { 0, 1 })
{
so.weaponEnabled_ = flag; EditorUtility.SetDirty(so); AssetDatabase.SaveAssets();
WLCharacterPaletteSettings.Invalidate();
sb.AppendLine("weaponEnabled_=" + flag + " · WeaponEnabled=" + WLCharacterPaletteSettings.WeaponEnabled);
foreach (var w in test)
{
var pf = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Res_Addr/Weapon/" + w + ".prefab");
var go = UnityEngine.Object.Instantiate(pf); go.name = w + "(Clone)";
var mf = go.GetComponentInChildren<MeshFilter>(true);
var rd = go.GetComponentsInChildren<Renderer>(true).First(r => !(r is ParticleSystemRenderer));
var m0 = mf.sharedMesh; var t0 = rd.sharedMaterial;
bool applied = WLWeaponPalette.Apply(go.transform);
sb.AppendLine(string.Format(" {0,-24} applied={1,-5} mesh {2} → {3} · mat {4} → {5} · {6}",
w, applied, m0.name, mf.sharedMesh.name, t0.name, rd.sharedMaterial.name,
flag == 0 ? ((mf.sharedMesh == m0 && rd.sharedMaterial == t0) ? "원본 그대로 ✅" : "🔴 바뀜")
: ((mf.sharedMesh != m0 && rd.sharedMaterial != t0) ? "팔레트 적용 ✅" : "🔴 미적용")));
UnityEngine.Object.DestroyImmediate(go);
}
}
so.weaponEnabled_ = was; EditorUtility.SetDirty(so); AssetDatabase.SaveAssets();
WLCharacterPaletteSettings.Invalidate();
sb.AppendLine("복구: weaponEnabled_=" + so.weaponEnabled_);
// 캐릭터 표가 그대로인지
sb.AppendLine("캐릭터 행 " + (so.rendererNames == null ? 0 : so.rendererNames.Length) + " · enabled_=" + so.enabled_ + " · 무기 행 " + so.weaponNames.Length);
File.WriteAllText("AgentScripts/WL816b_REVERT.txt", sb.ToString(), new UTF8Encoding(true));
Debug.Log("[WL816b] revert check done");
}
}