Skip to content

Commit bba9ab9

Browse files
committed
upload source code for unity create file extension
1 parent 6af22ea commit bba9ab9

File tree

191 files changed

+916
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

191 files changed

+916
-0
lines changed

README.md

+30
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,32 @@
11
# Unity_CreateScriptExtension
22
Unity脚本创建扩展,可以模板创建C#脚本一样创建其它扩展名的文件,并可以对每种扩展名文件定义模板,该工具已经完成右键创建Lua,XML,Text文件的创建功能.
3+
4+
5+
## 使用方法
6+
导入unitypackage资源包后,可以像创建C#代码一样,去创建Lua,Xml,txt格式的代码或文件.
7+
8+
![](readme_1.jpg)
9+
10+
11+
## 添加其它格式文件
12+
1. 创建模板文件
13+
在felixwee/templates/目录中创建你的模板文件,例如:XXX_template.md
14+
2. 在felixwee/scripts/DevExtEditor.cs代码中添加快捷菜单项
15+
16+
```cs
17+
/* 创建常用文件类型扩展 */
18+
[MenuItem("Assets/Create/Text", false, 81)]
19+
public static void CreateText()
20+
{
21+
//获取创建代码时的文件路径下的所有对象
22+
UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.TopLevel);
23+
//根据第一个文件获取不前文件夹路径
24+
string folder = AssetDatabase.GetAssetPath(arr[0]);
25+
26+
//将焦点定位到某个文件,并进行重命名
27+
//id,回调处理,新建文件url,图标,源始文件url
28+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<CreateFileAction>(), folder + "/XXX.md", null, "Assets/Editor/felixwee/templates/XXX_template.md");
29+
}
30+
```
31+
32+
## 下载插件包

Unity/UnityCreateScriptExtension/Assets/Editor.meta

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee.meta

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/scrtips.meta

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
完成模板中特定内容的替换并更新件内容
3+
@author: felixwee
4+
5+
@blog: www.felixwee.com
6+
*/
7+
using System;
8+
using System.Collections;
9+
using System.Collections.Generic;
10+
using System.IO;
11+
using System.Text;
12+
using System.Text.RegularExpressions;
13+
using UnityEditor;
14+
using UnityEditor.ProjectWindowCallback;
15+
using UnityEngine;
16+
17+
public class CreateFileAction : EndNameEditAction
18+
{
19+
public override void Action(int instanceId, string pathName, string resourceFile)
20+
{
21+
UnityEngine.Object obj = CreateScriptAssetFromTemplate(pathName, resourceFile);
22+
ProjectWindowUtil.ShowCreatedAsset(obj);
23+
}
24+
25+
private UnityEngine.Object CreateScriptAssetFromTemplate(string fullPath, string resourceFile)
26+
{
27+
//读取原文件内容
28+
StreamReader streamReader = new StreamReader(resourceFile);
29+
string text = streamReader.ReadToEnd();
30+
streamReader.Close();
31+
32+
//只获取文件名不包括扩展名
33+
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fullPath);
34+
35+
//如果是Lua,对模板中变量进行替换
36+
text =text.Replace("#LuaClass#", fileNameWithoutExtension);
37+
38+
//将替换好的内容写入文件
39+
StreamWriter streamWriter = new StreamWriter(fullPath);
40+
streamWriter.Write(text);
41+
streamWriter.Close();
42+
//导入指定路径下的资源
43+
AssetDatabase.ImportAsset(fullPath);
44+
//返回指定路径下的Object对象
45+
return AssetDatabase.LoadAssetAtPath(fullPath, typeof(UnityEngine.Object));
46+
}
47+
}

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/scrtips/CreateFileAction.cs.meta

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
根据模板文件创建各种格式的代码模板
3+
@author: felixwee
4+
5+
@blog: www.felixwee.com
6+
*/
7+
using System.Collections;
8+
using System.Collections.Generic;
9+
using System.IO;
10+
using UnityEditor;
11+
using UnityEngine;
12+
13+
public class DevExtEditor {
14+
15+
/* 创建常用文件类型扩展 */
16+
[MenuItem("Assets/Create/Lua Script",false,81)]
17+
public static void CreateLuaScript()
18+
{
19+
//获取创建代码时的文件路径下的所有对象
20+
UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.TopLevel);
21+
//根据第一个文件获取不前文件夹路径
22+
string folder=AssetDatabase.GetAssetPath(arr[0]);
23+
24+
//将焦点定位到某个文件,并进行重命名
25+
//id,回调处理,新建文件url,图标,源始文件url
26+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0,ScriptableObject.CreateInstance<CreateFileAction>(),folder + "/NewLuaScript.lua", null, "Assets/Editor/felixwee/templates/lua_template.lua");
27+
}
28+
/* 创建常用文件类型扩展 */
29+
[MenuItem("Assets/Create/XML", false, 81)]
30+
public static void CreateXML()
31+
{
32+
//获取创建代码时的文件路径下的所有对象
33+
UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.TopLevel);
34+
//根据第一个文件获取不前文件夹路径
35+
string folder = AssetDatabase.GetAssetPath(arr[0]);
36+
37+
//将焦点定位到某个文件,并进行重命名
38+
//id,回调处理,新建文件url,图标,源始文件url
39+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<CreateFileAction>(), folder + "/NewXml.xml", null, "Assets/Editor/felixwee/templates/xml_template.xml");
40+
}
41+
42+
/* 创建常用文件类型扩展 */
43+
[MenuItem("Assets/Create/Text", false, 81)]
44+
public static void CreateText()
45+
{
46+
//获取创建代码时的文件路径下的所有对象
47+
UnityEngine.Object[] arr = Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.TopLevel);
48+
//根据第一个文件获取不前文件夹路径
49+
string folder = AssetDatabase.GetAssetPath(arr[0]);
50+
51+
//将焦点定位到某个文件,并进行重命名
52+
//id,回调处理,新建文件url,图标,源始文件url
53+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<CreateFileAction>(), folder + "/NewText.txt", null, "Assets/Editor/felixwee/templates/txt_template.txt");
54+
}
55+
56+
}

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/scrtips/DevExtEditor.cs.meta

+12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/templates.meta

+9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
--[ #LuaClass# ]
2+
3+
--[定义lua类]
4+
#LuaClass#={};
5+
6+
--[常用变量定义]
7+
this=#LuaClass#;
8+
local transform;
9+
local gameObject;
10+
11+
function #LuaClass#.Awake()
12+
13+
end
14+
15+
16+
function #LuaClass#.Start()
17+
18+
end
19+
20+

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/templates/lua_template.lua.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/templates/txt_template.txt

Whitespace-only changes.

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/templates/txt_template.txt.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<root>
3+
</root>

Unity/UnityCreateScriptExtension/Assets/Editor/felixwee/templates/xml_template.xml.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5;0;6;0;0
Binary file not shown.

Unity/UnityCreateScriptExtension/Library/BuildPlayer.prefs

Whitespace-only changes.
Binary file not shown.

0 commit comments

Comments
 (0)