预览

在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. 网络基础知识 - HTTP协议

    前传:HTTP协议的演变过程 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是 ...

  2. Python和Java编程题(六)

    1.题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上想再吃时, ...

  3. 翻译:last_value()函数(已提交到MariaDB官方手册)

    本文为mariadb官方手册:LAST_VALUE()的译文. 原文:https://mariadb.com/kb/en/last_value/我提交到MariaDB官方手册的译文:https://m ...

  4. MAC 地址(单播、组播、广播地址分类)

    简介 一个制造商在生产制造网卡之前,必须先向 IEEE 注册,以获取到一个长度为 24bit 的厂商代码,也称为 OUI(Organizationally-Unique Identifier).制造商 ...

  5. Java爬虫之下载全世界国家的国旗图片

    介绍   本篇博客将继续上一篇博客:Python爬虫之使用Fiddler+Postman+Python的requests模块爬取各国国旗 的内容,将用Java来实现这个爬虫,下载全世界国家的国旗图片. ...

  6. 使用Task异步执行方法_多线程_应用程序池

    偶然遇到在执行登录的方法需要发送消息队列导致登录时间过长的问题,从网上查了一些方法,先将一个简单的异步处理程序的小例子展示出来,供大家参考: 备注:该方法是从应用程序程序所在的线程池中获取线程,第一次 ...

  7. 第一册:lesson thirty three。

    原文:A fine day. It is a fine day today. There are some clouds in the sky. But the sun is shining. Mr. ...

  8. 如何把ASP.NET MVC项目部署到本地IIS上

    默认情况下,在VisualStudio中开发网站,会运行在IISExpress中,如果想把网站部署到本地的IIS服务器上该怎么办呢? 一.首先,以管理员身份运行VisualStudio,否则在修改项目 ...

  9. Linux学习笔记之如何挂载数据盘

    一.引入 双11在阿里云买了一台服务器(Linux操作系统,版本:CentOS7.04),配置就是20G的系统盘和40G的数据盘,可是问题来了,当系统初始化登录进去之后,输入:free -h命令并不能 ...

  10. element UI table 过滤 筛选问题

    一.问提描述    使用elementUI table 官方筛选案例,发现筛选不是服务器端筛选,而是浏览器端对每一页进行单独筛选. 如何在服务器端筛选? 二.查询Element UI 官网table组 ...