unity插件开发——AssetDatabase

AssetDatebase也是一个静态类,他的作用是管理整个工程的所有文件(一般成为“资产”)。直观地说就是管理整个project窗口中的所有内容,比如,你可以增加、删除、修改文件等等。

这里有几个常常用到:

CreateAsset:创建文件

CreateFolder:创建文件夹

DeleteAsset:删除文件

GetAssetPath:获取文件相对于Assets所在目录的相对位置,如“Assets/Images/test.png”

LoadAssetAtPath:加载文件

Refresh:刷新整个project窗口

SaveAssets:保存所有文件

例子(实现右键点击文件或者文件夹,选择MyEditor/Delete Asset菜单后,删除选择的文件或者文件夹):


1

2

3

4

5

6

7

8

9

10

11

12


using UnityEditor;

public class EditorCase1

{

    [MenuItem("Assets/MyEditor/Delete Asset")]

    public static void CaseMenu()

    {

        var obj = Selection.activeObject;

        var path = AssetDatabase.GetAssetPath(obj);

        AssetDatabase.DeleteAsset(path);

    }

}

   

时间: 2025-01-02 04:09:34

unity插件开发——AssetDatabase的相关文章

Unity的AssetDatabase路径格式

开发环境 windows 7 Unity 5.3 及更高版本 前言 使用AssetDatabase.Load或AnimatorController.CreateAnimatorControllerAtPath等Unity内置Editor API进行文件操作时,经常碰到加载资源为null,或报路径不存在! 经过断点调试,发现绝大部分错误都是因为路径的分隔符存在两种:"/"和"\". 我们使用 System.IO.Path 这个API得到的路径,其实也是以"\

Unity插件开发:PrefabUtility--Prefab实例引用断开和替换

在Unity使用Prefab过程中,我们有时候需要进行Prefab实例断开引用和替换引用的需求.实现这些需求,使用到的核心的类是PrefabUtility.PrefabUtility是一个静态类,主要用于进行Prefab的相关处理. 这里主要使用以下几种方法 PrefabUtility.CreateEmptyPrefab PrefabUtility.ReplacePrefab PrefabUtility.DisconnectPrefabInstance PrefabUtility.GetPref

Unity插件开发:SerializedObject/SerializedProperty——查找引用的资源

        Unity有一个Find References in Scene功能非常好用.在Project面板中右键一个文件,选择Find References in Scene就可以在场景中找到所有存在对这个文件有引用的物体.但是很多时候,我们更加需要知道的是,这个场景里面到底引用了哪些文件,比如做优化的时候.         这里有一个插件叫做ResourceChecker,它可以列举出所有引用到的texture/mesh/mat等.但是他也有一个小小的问题,对于自定义脚本的引用没有效果

unity插件开发——一个例子:简单的svn集成

在unity开发过程中,通常我们习惯性地在Windows操作系统下使用svn进行版本管理,而每次提交更新,都需要回到文件夹下的这种操作让人无法忍受.是不是可以集成svn到unity中呢?查了一圈unity store可以看到很多svn的第三方插件.考虑到我们只需要简单的功能,而且不希望加入额外复杂的代码,最后还是自己写一个插件.功能就是更新或者提交assets文件夹. 如果还没有svn对项目进行管理的,按照以下2步操作:     1.下载svn客户端,安装.     2.从svn版本库check

unity插件开发——MenuItem

有unity中的菜单栏是我们经常使用到的地方,如下图: MenuItem的作用就是增加一个自己的菜单 使用方法: 在工程中Assets目录下任意一个Editor目录(以后简称Editor目录,如果不存在,请自行创建)中创建任意脚本,比如我创建了叫做MenuTest .cs,双击进入代码编辑,创建一个静态函数,(代码来自官方文档http://docs.unity3d.com/Documentation/ScriptReference/MenuItem.html)如下: public class M

unity插件开发——Selection

Selection是一个静态类,它的主要功能是获取在project窗口中鼠标选择的对象或者是inspector窗口的当前显示的对象.它的字段有 activeGameObject activeInstanceID activeObject activeTransform gameObjects instanceIDs objects transforms 其中activeGameObject和activeTransform是inspector窗口的当前显示对象对应的GameObject和Trans

Unity3D集成TortoiseSVN

无论是个人开发还是团队开发,养成好的版本管理习惯可以大大提高开发效率.常用的版本管理软件一般用SVN或者Git.尽管2者都在用,但是更加偏好SVN一些.安装TortoiseSVN就可以直接将SVN管理软件集成到Windows的Explorer中了.点击鼠标右键就会有SVN的相关菜单,可以非常方便地CheckOut项目以及Commit和Update. 在使用Unity3D开发时,目前主流的代码编辑器(IDE)都会选择Virsual Studio(VS).作为宇宙第一强大的IDE,VS自然也有SVN

[C#]关于路径的几则笔记

测试环境 本文基于windows下的操作 windows 7 x64 unity 5.3.7p4 获取文件的路径 比如一个文件的路径为:e:\3d\client\trunk\Product\Apps\Windows\v0007_1452\qxz_x86_dev.exe 我们想要获取它的路径,可以通过以下方式: 使用Path var filePath = @"e:\3d\client\trunk\Product\Apps\Windows\v0007_1452\qxz_x86_dev.exe&quo

Unity 导出切片精灵

http://blog.csdn.net/akof1314/article/details/38845933 设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置: 为了可以使用Unity自带的精灵切割,要将纹理类型改成"Sprite","Sprite Mode"改成"Mu