public class CustomAssetModificationProcessor : UnityEditor.AssetModificationProcessor { static void OnWillCreateAsset(string assetName) { Debug.Log("OnWillCreateAsset is being called with the following asset: " + assetName + "."); } }
其中,assetName是资产的相对路径。
到这里思路就清晰了:创建CS文件后,用File类读取文件,再以UTF-8格式保存。
但是,如果在这个函数里使用File类,传入assetName,对创建的CS文件进行读取,会提示错误:FileNotFoundException: Could not find file "xxx.cs"
public class ScriptModificationProcessor : AssetModificationProcessor { public static void OnWillCreateAsset(string assetName) { if (assetName.EndsWith(".cs")) { if (!ScriptPostprocessor.s_CreatedScripts.Contains(assetName)) { ScriptPostprocessor.s_CreatedScripts.Add(assetName); } } } }
public class ScriptPostprocessor : AssetPostprocessor { public static List<string> s_CreatedScripts = new();