79 lines
4.2 KiB
C#
79 lines
4.2 KiB
C#
|
|
// WL-814b — Assets/3DPixelCamera/URP.unitypackage 해제(BuiltIn 은 절대 건드리지 않는다).
|
||
|
|
// 게임 코드 아님. run_script 전용.
|
||
|
|
public static class WL814b_Import
|
||
|
|
{
|
||
|
|
const string Pkg = "Assets/3DPixelCamera/URP.unitypackage";
|
||
|
|
const string Dir = "Assets/3DPixelCamera/URP";
|
||
|
|
|
||
|
|
/// <summary>1단계 — 스냅샷을 찍고 비동기 임포트를 시작한다.</summary>
|
||
|
|
public static string Run()
|
||
|
|
{
|
||
|
|
if (!System.IO.File.Exists(Pkg)) return "FAIL 패키지 없음: " + Pkg;
|
||
|
|
|
||
|
|
var sb = new System.Text.StringBuilder();
|
||
|
|
sb.AppendLine("[WL814b-import] before: URP 폴더 존재=" + System.IO.Directory.Exists(Dir));
|
||
|
|
UnityEditor.AssetDatabase.ImportPackage(Pkg, false); // false = 대화상자 없이 전부
|
||
|
|
sb.AppendLine("[WL814b-import] ImportPackage 호출됨(비동기) — 다음 단계에서 Verify");
|
||
|
|
return sb.ToString();
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>2단계 — 생긴 파일 목록·GUID 를 뱉는다.</summary>
|
||
|
|
public static string Verify()
|
||
|
|
{
|
||
|
|
UnityEditor.AssetDatabase.Refresh();
|
||
|
|
var sb = new System.Text.StringBuilder();
|
||
|
|
if (!System.IO.Directory.Exists(Dir)) { sb.AppendLine("FAIL URP 폴더 없음"); return sb.ToString(); }
|
||
|
|
|
||
|
|
var files = System.IO.Directory.GetFiles(Dir, "*", System.IO.SearchOption.AllDirectories);
|
||
|
|
System.Array.Sort(files);
|
||
|
|
int n = 0;
|
||
|
|
foreach (var f in files)
|
||
|
|
{
|
||
|
|
var rel = f.Replace('\\', '/');
|
||
|
|
int i = rel.IndexOf("Assets/");
|
||
|
|
if (i >= 0) rel = rel.Substring(i);
|
||
|
|
if (rel.EndsWith(".meta")) { sb.AppendLine(" meta " + rel); continue; }
|
||
|
|
n++;
|
||
|
|
var guid = UnityEditor.AssetDatabase.AssetPathToGUID(rel);
|
||
|
|
var t = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(rel);
|
||
|
|
sb.AppendLine(" ASSET " + rel + " | guid=" + guid + " | type=" + (t == null ? "?" : t.Name)
|
||
|
|
+ " | " + new System.IO.FileInfo(f).Length + " B");
|
||
|
|
}
|
||
|
|
sb.AppendLine("[WL814b-import] 에셋 " + n + "개(+meta) · BuiltIn 해제 0");
|
||
|
|
|
||
|
|
// 프리팹 구조 표
|
||
|
|
var pf = UnityEditor.AssetDatabase.LoadAssetAtPath<UnityEngine.GameObject>(Dir + "/PixelCameraSystem.prefab");
|
||
|
|
if (pf == null) sb.AppendLine("FAIL PixelCameraSystem.prefab 로드 실패");
|
||
|
|
else { sb.AppendLine("[구조]"); Dump(pf.transform, 0, sb); }
|
||
|
|
return sb.ToString();
|
||
|
|
}
|
||
|
|
|
||
|
|
static void Dump(UnityEngine.Transform t, int depth, System.Text.StringBuilder sb)
|
||
|
|
{
|
||
|
|
sb.Append(' ', depth * 2).Append("- ").Append(t.name).Append(" layer=").Append(t.gameObject.layer);
|
||
|
|
var comps = t.GetComponents<UnityEngine.Component>();
|
||
|
|
sb.Append(" [");
|
||
|
|
for (int i = 0; i < comps.Length; i++)
|
||
|
|
{
|
||
|
|
if (comps[i] == null) { sb.Append("<missing> "); continue; }
|
||
|
|
sb.Append(comps[i].GetType().Name).Append(' ');
|
||
|
|
}
|
||
|
|
sb.Append("]");
|
||
|
|
var cam = t.GetComponent<UnityEngine.Camera>();
|
||
|
|
if (cam != null)
|
||
|
|
sb.Append(" cam(ortho=").Append(cam.orthographic ? 1 : 0).Append(" size=").Append(cam.orthographicSize)
|
||
|
|
.Append(" depth=").Append(cam.depth).Append(" mask=").Append(cam.cullingMask)
|
||
|
|
.Append(" clear=").Append((int)cam.clearFlags).Append(" near=").Append(cam.nearClipPlane)
|
||
|
|
.Append(" far=").Append(cam.farClipPlane).Append(")");
|
||
|
|
var ucd = t.GetComponent<UnityEngine.Rendering.Universal.UniversalAdditionalCameraData>();
|
||
|
|
if (ucd != null) sb.Append(" urp(type=").Append(ucd.renderType).Append(" post=").Append(ucd.renderPostProcessing ? 1 : 0).Append(")");
|
||
|
|
var mr = t.GetComponent<UnityEngine.MeshRenderer>();
|
||
|
|
if (mr != null) sb.Append(" mat=").Append(mr.sharedMaterial == null ? "null" : mr.sharedMaterial.name);
|
||
|
|
var lp = t.localPosition; var ls = t.localScale;
|
||
|
|
sb.Append(" lp=(").Append(lp.x.ToString("0.####")).Append(',').Append(lp.y.ToString("0.####")).Append(',').Append(lp.z.ToString("0.####")).Append(')');
|
||
|
|
sb.Append(" ls=(").Append(ls.x.ToString("0.####")).Append(',').Append(ls.y.ToString("0.####")).Append(',').Append(ls.z.ToString("0.####")).Append(')');
|
||
|
|
sb.AppendLine();
|
||
|
|
for (int i = 0; i < t.childCount; i++) Dump(t.GetChild(i), depth + 1, sb);
|
||
|
|
}
|
||
|
|
}
|