预览

在Project视图中,扩展右键菜单,右键Create - Text File 创建一个Text文件,或者Lua文件。

关键点

获取当前选择的路径,以Assets路径开头

var selectPath = AssetDatabase.GetAssetPath(Selection.activeObject);

C# API 创建一个文件,并指定文件编码格式

File.WriteAllText("D:\Code\xxx\xxx.lua", "-- test", Encoding.UTF8);

刷新Project视图中的文件

AssetDatabase.Refresh();

代码

地址:https://github.com/zhaoqingqing/blog_samplecode/blob/master/unity_helper/Editor/CreateFileEditor.cs

完整代码如下

using System.IO;
using System.Text;
using UnityEditor;
using UnityEngine; /// <summary>
/// Unity Editor 下右键创建文本类文件
/// </summary>
public class CreateFileEditor : Editor
{
[MenuItem("Assets/Create/Lua File")]
static void CreateLuaFile()
{
CreateFile("lua");
} [MenuItem("Assets/Create/Text File")]
static void CreateTextFile()
{
CreateFile("txt");
} /// <summary>
/// 创建文件类的文件
/// </summary>
/// <param name="fileEx"></param>
static void CreateFile(string fileEx)
{
//获取当前所选择的目录(相对于Assets的路径)
var selectPath = AssetDatabase.GetAssetPath(Selection.activeObject);
var path = Application.dataPath.Replace("Assets", "") + "/";
var newFileName = "new_" + fileEx + "." + fileEx;
var newFilePath = selectPath + "/" + newFileName;
var fullPath = path + newFilePath; //简单的重名处理
if (File.Exists(fullPath))
{
var newName = "new_" + fileEx + "-" + UnityEngine.Random.Range(0, 100) + "." + fileEx;
newFilePath = selectPath + "/" + newName;
fullPath = fullPath.Replace(newFileName, newName);
} //如果是空白文件,编码并没有设成UTF-8
File.WriteAllText(fullPath, "-- test", Encoding.UTF8); AssetDatabase.Refresh(); //选中新创建的文件
var asset = AssetDatabase.LoadAssetAtPath(newFilePath, typeof(Object));
Selection.activeObject = asset;
}
}

Unity Editor 下创建Lua和Text文件的更多相关文章

  1. 无法在“EntityFramework”已存在的情况下创建影像复制该文件的解决方案

    问题产生的原因:你项目正在生成中你就打开浏览器预览了,导致这个问题解决方案:右击重新生成项目,等生成后再打开 “/”应用程序中的服务器错误. 无法在“EntityFramework”已存在的情况下创建 ...

  2. Tomcat下使用C3P0配置JNDI数据源(在项目的META-INF目录下创建context.xml的文件)

    一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包

  3. Windows下创建指定大小的文件

    前言 因为需要测试存储容量,所以需要能生成指定大小的文件. 执行 #语法:fsutil file createnew 路径和文件名 文件大小 fsutil file createnew D:\test ...

  4. Mac 系统下创建可双击执行文件,cd到执行文件当前目录

    在mac下之前我一直用.sh文件,但是要去终端里才能执行,后来得知可以写.command文件,双击及可执行,很方便,特此记录 #!/bin/bash basepath=$(cd `dirname $0 ...

  5. unity Editor下自启动

    [InitializeOnLoad] 加上这个特性,并且在静态构造函数里写上内容.即可在Unity启动的时候自启动这个Editor脚本

  6. Unity Editor下对资源进行操作时调用AssetModificationProcessor

    public class Test : UnityEditor.AssetModificationProcessor { private static void OnWillCreateAsset(s ...

  7. Inno Setup入门(六)——在程序目录下创建文件

    创建文件夹可以使用[dirs]段实现,代码如下: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST DefaultDirName="E:\TES ...

  8. Inno Setup入门(六)——在程序目录下创建文件夹

    创建文件夹可以使用[dirs]段实现,代码如下: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TEST DefaultDirName="E:\TES ...

  9. (转)Inno Setup入门(六)——在程序目录下创建文件夹

    本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17250789 创建文件夹可以使用[dirs]段实现,代码如下: [s ...

随机推荐

  1. mybatis是如何防止SQL注入的

    mybatis是如何防止SQL注入的 1.首先看一下下面两个sql语句的区别: <select id="selectByNameAndPassword" parameterT ...

  2. 【golang-GUI开发】qt之signal和slot(一)

    想了很久,我决定还是先从signal和slot(信号槽)开始讲起. signal和slot大家一定不陌生,先看一段示例(选自文档): class Counter : public QObject { ...

  3. iOS -数据持久化方式-以真实项目讲解

    前面已经讲解了SQLite,FMDB以及CoreData的基本操作和代码讲解(CoreData也在不断学习中,上篇博客也会不断更新中).本篇我们将讲述在实际开发中,所使用的iOS数据持久化的方式以及怎 ...

  4. Linux-cut命令(22)

    cut剪切命令cut命令通常用来对某个文本文件进行解析,擅长处理以一个字符间隔的文本内容 -b :以字节(bytes)为单位进行分割.这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志. -c ...

  5. Elastic-Job-分布式调度解决方案

    Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成. Elastic-Job-Lite定位为轻量级无中心化解 ...

  6. List集合遍历整理

    遍历List集合的三种方式 0. 首先准备测试数据 List<String> list = new ArrayList<String>(); list.add("Ja ...

  7. java_GPS数据处理

    题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine ...

  8. JS基础(二)事件监听练习之table鼠标悬停行变色

    JS监听事件简单学习: [object].addEvent("事件类型","处理函数","冒泡事件或捕获事件");   [object].r ...

  9. overall error

    Overall error is same with total error in math.

  10. Java垃圾回收器的工作原理

    上课,老师照本宣科,实在难以理解,干脆就看书包里的Java书,正好看了Java的垃圾回收器是如何工作的,觉得有必要记录一下. 参考于 Java编程思想第四版(Thinking in Java) 老年代 ...