Unity 编辑器中获取选中的文件夹、文件路径

news/2024/9/24 18:06:17

编辑器中获取选中的文件夹、文件路径

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的GUIDfor (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 "";}}

使用案例:

访问某个具体的文件:

image

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

image

访问某个具体的文件夹:

image

则第一种方式Selection.activeObject便不可行[笔者在这里踩坑~]

同样的,如果访问的文件夹内容为空,则三种方式均可打印出路径:

image

image


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46242.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

springcloud 不加载 bootstrap.yaml 问题

背景: 在 bootstrap.yaml 配置 nacos。但是怎么样都注册不上, 然后发现是没有加载 bootstrap.yaml 导致的。 最初以为是 springcloud 版本问题,折腾了1个小时才发现是模块的父工程里面配置的插件 spring-boot-maven-plugin 导致的。 具体如下图:

ch11 特征选择与稀疏学习

Ch11 特征选择子集选择与评价 缓解维度灾难的另一种重要方法是进行特征筛选,同时它也能降低学习任务的难度,只留下关键特征。 对当前学习任务有用的属性称为“相关特征”,而对当前学习任务没有用的属性称为“无关特征”,包含信息能被其他特征表示的属性称为“冗余特征”。 …

深度学习--seqt2seq RNN 英语翻译法语--86

目录1. 结构2. 代码解读 1. 结构我画的:2. 代码解读 导包 import nltk import numpy as np import re import shutil import tensorflow as tf import os import unicodedatafrom nltk.translate.bleu_score import sentence_bleu, SmoothingFunction数据集的预处理 def clean…

# 机器学习day05

机器学习第五天……张量元素类型转换data.type(torch.DoubleTensor)data = torch.full([2, 3], 10)print(data.dtype)# 将 data 元素类型转换为 float64 类型 data = data.type(torch.DoubleTensor)print(data.dtype)# 转换为其他类型 # data = data.type(torch.ShortTensor)# …

Kali 安装并配置 Nessus

Kali 安装并配置 Nessus 安装 Nessus创建nessus文件夹sudo mkdir /opt/nessus下载 Nessus ( https://www.tenable.com/downloads/nessus?loginAttempted=true ),并上传至 /opt/nessus 文件夹在 /opt/nessus 路径下,使用命令安装 Nessusdpkg -i Nessus-10.7.4-debian6_amd64.…

Kotlin 数据类型详解:数字、字符、布尔值与类型转换指南

Kotlin中变量类型由值决定,如Int、Double、Char、Boolean、String。通常可省略类型声明,但有时需指定。数字类型分整数(Byte, Short, Int, Long)和浮点(Float, Double),默认整数为Int,浮点为Double。布尔值是true或false,Char用单引号,字符串用双引号。数组和类型转换…

Exercises

### Auto自动化变量自动存储类别是默认的存储类别,通常用于在”函数内部定义的局部变量“。这些变量会在程序执行到其定义的代码块时对应的栈空间被创建,函数执行完毕后变量对应栈空间会自动销毁。 示例: int main() //宿主 {auto int data;//寄生虫 auto int data; 局部变量…

vxlan基本原理及裸搭过程

https://mp.weixin.qq.com/s/pqVvBd2CbHkWwD79aDb6mg剥离flannel或者其他overlay网络的上层封装,我们可以通过 ip命令纯手工搭建一个vxlan overlay网络, 这其中最关键的部分是:vethpair: 打通容器内外 vxlan.nic: 虚拟网卡,封装/解封数据包除了创建这些硬件,我们还需要设置…