49 lines
2.1 KiB
C#
49 lines
2.1 KiB
C#
// WL770_MakeAsset.cs — PD 지시 #770 : WLTargetingSettings 에셋 생성/갱신 (에디터 전용)
|
|
// unity command run_script --file AgentScripts/WL770_MakeAsset.cs --entry WL770_MakeAsset.Run
|
|
//
|
|
// 값의 SOT 는 이 에셋이다(C45). 이 스크립트는 "에셋을 처음 만들 때의 초기값"만 넣으며,
|
|
// 초기값 = WLTargetingSettings.cs 의 필드 기본값(= PD 지시 #770 그대로)을 그대로 쓴다.
|
|
// 이미 에셋이 있으면 값을 덮어쓰지 않고 경로만 보고한다.
|
|
using System.Text;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
public static class WL770_MakeAsset
|
|
{
|
|
const string kDir = "Assets/WL/Settings/Resources/WL";
|
|
const string kPath = kDir + "/WLTargetingSettings.asset";
|
|
|
|
public static object Run()
|
|
{
|
|
var sb = new StringBuilder();
|
|
if (!AssetDatabase.IsValidFolder(kDir))
|
|
{
|
|
sb.AppendLine("folder missing: " + kDir);
|
|
return sb.ToString();
|
|
}
|
|
|
|
var so = AssetDatabase.LoadAssetAtPath<WL.Settings.WLTargetingSettings>(kPath);
|
|
if (so == null)
|
|
{
|
|
so = ScriptableObject.CreateInstance<WL.Settings.WLTargetingSettings>();
|
|
AssetDatabase.CreateAsset(so, kPath);
|
|
sb.AppendLine("created " + kPath);
|
|
}
|
|
else sb.AppendLine("exists " + kPath + " (값 유지)");
|
|
|
|
EditorUtility.SetDirty(so);
|
|
AssetDatabase.SaveAssets();
|
|
AssetDatabase.Refresh();
|
|
WL.Settings.WLTargetingSettings.ClearCache();
|
|
|
|
var chk = Resources.Load<WL.Settings.WLTargetingSettings>(WL.Settings.WLTargetingSettings.ResourcesPath);
|
|
sb.AppendLine("Resources.Load=" + (chk != null ? "ok" : "FAILED"));
|
|
if (chk != null)
|
|
sb.AppendLine(" frontConeDeg=" + chk.frontConeDeg + " facingWeight=" + chk.facingWeight
|
|
+ " attackStartRetarget=" + chk.attackStartRetarget + " retargetOnKill=" + chk.retargetOnKill
|
|
+ " pcAggroOnHit=" + chk.pcAggroOnHit + " immediateAttackMargin=" + chk.immediateAttackMargin
|
|
+ " retargetSearchRange=" + chk.retargetSearchRange);
|
|
return sb.ToString();
|
|
}
|
|
}
|