Unity 编辑器中获取选中的文件夹、文件路径
编辑器中获取选中的文件夹、文件路径
using UnityEditor;
using UnityEngine;
using Object = UnityEngine.Object;
public class MyEditorScript
{
[MenuItem("Assets/PrintSelectedFolderPath")]
static void PrintSelectedFolderPath()
{
// 第一种方式
// 只能访问选中的文件 选中的文件夹则不会打印
// 获取选中的对象 仅仅对File有效
var obj = Selection.activeObject;
// 获取选中对象的路径
string path = AssetDatabase.GetAssetPath(obj);
Debug.Log("通过Selection.activeObject获取的路径: " + path);
// -----------------第二种方式-------------------------------
//支持多选
string[] guids = Selection.assetGUIDs;//获取当前选中的asset的GUID
for (int i = 0; i < guids.Length; i++)
{
string assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);//通过GUID获取路径
Debug.Log("通过GUID获取的路径"+Application.dataPath + assetPath.Substring(6));
}
//第三种方式访问路径
Debug.Log("遍历Object来获取对应的路径" + Application.dataPath + GetCurrentAssetDirectory().Substring(6));
}
public static string GetCurrentAssetDirectory()
{
foreach (var obj in Selection.GetFiltered<Object>(SelectionMode.Assets))
{
var path = AssetDatabase.GetAssetPath(obj);
if(string.IsNullOrEmpty(path))
continue;
if (System.IO.Directory.Exists(path))
{
return path;
}else if (System.IO.File.Exists(path))
{
return System.IO.Path.GetDirectoryName(path);
}
}
return "";
}
}
使用案例:
访问某个具体的文件:

三种方式都可以访问出路径:

访问某个具体的文件夹:

则第一种方式Selection.activeObject便不可行[笔者在这里踩坑~]
同样的,如果访问的文件夹内容为空,则三种方式均可打印出路径:


Unity 编辑器中获取选中的文件夹、文件路径的更多相关文章
- JavaSE 文件递归之删除&获取文件夹文件夹中全部的以.jpg的文件的绝对路径
1.递归删除文件 假设一个文件夹以下还有子文件夹,进行删除的话会 报错,这个时候要使用递归的方式来删除这个文件文件夹中的全部文件以及文件夹 package cn.itcast.digui; impor ...
- C#获取文件夹/文件的大小以及占用空间 转摘自:http://www.cnblogs.com/chenpeng-dota/articles/2176470.html
C#获取文件夹/文件的大小以及占用空间 今天,头给了个任务:写个方法,我会给你个路径,计算这个路径所占用的磁盘空间 . 然后,找了很多资料.但大部分都是获取文件夹/文件的大小的.对于占用空间的没有成品 ...
- 【Unity优化】如何实现Unity编辑器中的协程
Unity编辑器中何时需要协程 当我们定制Unity编辑器的时候,往往需要启动额外的协程或者线程进行处理.比如当执行一些界面更新的时候,需要大量计算,如果用户在不断修正一个参数,比如从1变化到2,这种 ...
- 【.Net】C#获取Windows系统特殊文件夹的路径
系统特殊文件夹是包含公共信息的文件夹,如“Program Files”.“Programs”.“System”或“Startup”.特殊文件夹在默认情况下由系统设置,或者由用户在安装 Windows ...
- 【Unity优化】怎样实现Unity编辑器中的协程
Unity编辑器中何时须要协程 当我们定制Unity编辑器的时候,往往须要启动额外的协程或者线程进行处理.比方当运行一些界面更新的时候,须要大量计算,假设用户在不断修正一个參数,比方从1变化到2.这种 ...
- android开发如何获取res/raw和assets文件夹的路径
---恢复内容开始--- android开发如何获取res/raw和assets文件夹的路径,主要分为两种情况: 1.如果你只是拷贝动作,那么你只需要得到res/raw和assets文件输入流就可以, ...
- Shell脚本递归打印指定文件夹中全部文件夹文件
#!/bin/bash #递归打印当前文件夹下的全部文件夹文件. PRINTF() { ls $1 | while read line #一次读取每一行放到line变量中 do [ -d $1/$li ...
- QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)
QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...
- java获取web项目下文件夹的路径方法
方法一: String realPath=request.getSession().getServletContext() .getRealPath("upload"); 方法二: ...
- Qt5读取系统环境变量和获取指定目录下的所有文件夹绝对路径
头文件 /// 读取环境变量使用 #include <QProcessEnvironment> /// 遍历文件夹使用 #include <QDir> 核心代码 一个例子, 输 ...
随机推荐
- [FAQ] IDE: Goland 注释符后面添加空行
如图所示,Code Style 对应语言 Go 勾选上注释空行的选项. Refer:Goland官网 Goland下载 Link:https://www.cnblogs.com/farwish/p/1 ...
- 从右边开始寻找整数的第k位
从右边开始寻找整数的第k位 Implement match_k, which takes in an integer k and returns a function that takes in a ...
- xtrabackup备份恢复
tar -xzvf percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz cd percona-xtrabackup-2.1.9-Linux-x86_64/ ...
- linux-centos7.6-gpt-uefi安装
目录 linux-centos7.6-gpt-uefi安装 一.需要 二.环境 三.vm新建虚拟机系统环境 四.开始安装 linux-centos7.6-gpt-uefi安装 一.需要 安装的系统适用 ...
- NSThread的isEexcuting和isFinish什么时候被设置
NSThread的isExecuting在进入-[NSThread main]函数之前就已经被设置成YES; NSThread的isFinished在执行+[NSThread exit]后才被设置成N ...
- keepalived(1)- keepalived集群概述
目录 1. 高可用集群概述 2. keepalived概述 2.1 keepalived介绍 2.2 keepalived体系架构 2.3 keepalived实现原理 2.4 keepalived配 ...
- 移动通信网络中的 FDD/TDD 无线帧
目录 文章目录 目录 前文列表 无线帧 FDD 与 TDD 的区别 FDD 无线帧 TDD 无线帧 前文列表 <移动通信网络中的资源类型> 无线帧 LTE 支持两种类型的无线帧:FDD(F ...
- kubernetes 之网络(canal)
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ 所有节点重设 ...
- linux 文件的特殊权限:suid sgid sticky
目录 一.关于文件的特殊权限 二.suid 三.SGID 四.Stickybit 一.关于文件的特殊权限 1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限.特殊权限会拥有一些" ...
- 深入理解Docker原理
本文参考转载至:<深入剖析Kubernetes - 张磊> 更过优秀博文请关注:https://blog.bigcoder.cn 容器技术的核心功能,就是通过约束和修改进程的动态表现,从而 ...