【Unity Editor编辑器】 代码获取project面板选中资源路径(自定义右键菜单)

在Unity编辑器中,如果想要快捷的获取到Project面板中选中文件的路径,比如我们需要用Resources.Load的方式加载一个prefab,就需要知道这个prefab的路径,或者在自定义窗口中需要显示出所选择文件的路径,那么接下来的方法就能排上用场了。

代码:

public static void LogPath()
{
        //支持多选
        string[] guids = Selection.assetGUIDs;//获取当前选中的asset的GUID
        for (int i = 0; i < guids.Length; i++)
        {
            string assetPath = AssetDatabase.GUIDToAssetPath(guids[i]);//通过GUID获取路径
            Debug.Log(assetPath);
        }
}

注意,这里采用的是Editor下面相关API,所以此代码脚本必须要放在Editor目录下。接下来简单聊聊对Project面板中asset选中后右键菜单的自定义。比如这样:
在这里插入图片描述
如果我们想要通过菜单的方式调用刚刚我们写的LogPath方法,只需要在方法体前面加上标签:

[MenuItem("Assets/LogPath")]
public static void LogPath(){}

这里的MenuItem有三个重载函数,简单介绍一下它的三个参数.

public MenuItem(string itemName, bool isValidateFunction, int priority);

itemName:这里的菜单上看到的名字
isValidateFunction:表名这个标签下的方法是不是验证此标签是否激活的表现(稍后看实例)
priority:优先级,控制在面板上的显示位置

对于isValidateFunction的作用,比如想要自定义的选项变灰(不可点击),如下:
在这里插入图片描述
那么就需要加上这样的处理:

[MenuItem("Assets/LogPath", true)]
public static bool ValidateLogPath()
{
      return false;//返回true则为正常可点击状态 false代表变灰不可点击状态
}

好了,如果点击我们自定义的菜单,则可以看到选中asset的路径了:
在这里插入图片描述
其实仔细观察的话会发现,Unity已经提供了我们获取asset路径的方式,还有快捷键操作,就是这个Copy Path
在这里插入图片描述
所以前面写的通过代码来获取路径有点脱了裤子放屁的感觉,不过作为一名码农,通过自己动手写代码的方式来做这种脱了裤子放屁的事也会觉得屁真香。O(∩_∩)O哈哈~

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity编辑器中,可以通过以下步骤导出Android Export Project: 1. 在菜单栏中选择 File -> Build Settings。 2. 选择 Android 平台,并点击 Switch Platform。 3. 点击 Player Settings,进入项目设置页面。 4. 在 Player Settings 中,选择 Other Settings 选项卡,然后找到 Export Project 选项。 5. 勾选 Export Project 选项,并指定导出路径。 6. 点击 Build,等待项目导出完成。 完成导出后,可以使用以下命令行来执行Il2Cpp编译: 1. 打开命令行工具,并进入导出项目的根目录。 2. 进入项目的 libs/armeabi-v7a 目录,可以看到 libil2cpp.so 文件。 3. 在 libs/armeabi-v7a 目录下创建一个名为 il2cpp_cache 的空目录。 4. 使用以下命令行执行 Il2Cpp 编译: ``` "<Unity安装目录>/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/il2cpp/il2cpp.exe" \ --platform=android \ --architecture=armv7 \ --sdk-version=<SDK版本号> \ --libil2cpp-static \ --output-dir=<输出目录> \ --cachedirectory=il2cpp_cache \ --additional-include-directories="<Unity安装目录>/Editor/Data/PlaybackEngines/AndroidPlayer/Tools/stlport/stlport" \ --generatedcppdir=il2cppOutput \ --compile-cpp \ --development \ --runtime-version=<Unity版本号> \ --metadata-version=24 \ --no-symbol-map \ --strip-engine-symbols \ --enable-stacktrace \ --llvm-config="<Unity安装目录>/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/<平台>/bin/llvm-config" \ --linker-flags="-llog -rdynamic" \ "<导出项目根目录>/libs/armeabi-v7a/libil2cpp.so" ``` 其中,需要替换以下参数: - `<Unity安装目录>`: Unity 编辑器的安装目录。 - `<SDK版本号>`: Android SDK 的版本号。 - `<输出目录>`: 编译后的输出目录。 - `<Unity版本号>`: 使用的 Unity 版本号。 - `<平台>`: 选择对应的平台,如 windows-x86_64。 执行成功后,会在 `<输出目录>` 中生成相应的编译结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值