[MenuItem("Assets/Create/Format/Unit Script" , false, 0) ]
public static void CreateUnitScript ()
{
FileCreateHelper.CreateScriptWithTitle(@$"
using System;
using System.Collections;
using System.Collections.Generic;
using AirFramework;
namespace {FrameworkSettings.instance.defaultNamespace}
{{
public class #NAME# : Unit
{{
protected override void OnDispose()
{{
}}
}}
}}
" );
}
public static void CreateScript (string source, string defaultName = "NewScript.cs" , Texture2D icon = null )
{
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0 ,
ScriptableObject.CreateInstance<CreateScriptAsset>(),
$"{FileCreateHelper.GetSelectedPathOrFallback()} /{defaultName} " ,
icon, source
);
}
using System.IO;
using System.Text;
using UnityEditor;
using UnityEditor.ProjectWindowCallback;
namespace AirFrameworkEditor
{
class CreateScriptAsset : EndNameEditAction
{
public override void Action (int instanceId, string pathName, string sourceCode )
{
UnityEngine.Object o = CreateScriptAssetFromTemplate(pathName, sourceCode);
ProjectWindowUtil.ShowCreatedAsset(o);
}
internal static UnityEngine.Object CreateScriptAssetFromTemplate (string pathName, string resourceFile )
{
string fullPath = Path.GetFullPath(pathName);
string text = resourceFile;
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(pathName).Split('.' )[0 ];
text = text.Replace("#NAME#" , fileNameWithoutExtension.Replace(" " , string .Empty));
bool encoderShouldEmitUTF8Identifier = true ;
bool throwOnInvalidBytes = false ;
UTF8Encoding encoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier, throwOnInvalidBytes);
bool append = false ;
StreamWriter streamWriter = new StreamWriter(fullPath, append, encoding);
streamWriter.Write(text);
streamWriter.Close();
AssetDatabase.ImportAsset(pathName);
AssetDatabase.Refresh();
return AssetDatabase.LoadAssetAtPath(pathName, typeof (UnityEngine.Object));
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY