开发环境

windows 7

Unity 5.3 及更高版本

前言

使用AssetDatabase.Load或AnimatorController.CreateAnimatorControllerAtPath等Unity内置Editor API进行文件操作时,经常碰到加载资源为null,或报路径不存在!

经过断点调试,发现绝大部分错误都是因为路径的分隔符存在两种:"/"和"\"。

我们使用 System.IO.Path 这个API得到的路径,其实也是以"\"分隔路径的。

我们在windows下打开资源管理器,某个目录或文件的路径为:e:\Code\GameFramework\ 或 \\192.168.80.100\XXX\

但是使用Unity的API,打印Application.dataPath 时,打印出:E:/xxx/client/trunk/Project/Assets,所以可知,它的路径和windows是反的,所以当我们使用的路径不符合Unity的规范时,经常会报资源加载失败。

比如某个FBX的路径为:Assets/Art/Characters/Wing/fbx_3005/3005@stand.FBX ,而如果你的输入的路径或拼接的路径不符合规范,那么极有可能会加载文件失败。

规范化路径

提供一个方法,把路径格式成Unity可读取的路径格式:

/// <summary>
/// 格式化路径成Asset的标准格式
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
public static string FormatAssetPath(string filePath)
{
var newFilePath1 = filePath.Replace("\\", "/");
var newFilePath2 = newFilePath1.Replace("//", "/").Trim();
newFilePath2 = newFilePath2.Replace("///", "/").Trim();
newFilePath2 = newFilePath2.Replace("\\\\", "/").Trim();
return newFilePath2;
}

Unity的AssetDatabase路径格式的更多相关文章

  1. Unity各平台路径总结

    路径是Unity开发中令人头疼的一个问题,根据我的开发经验,现将开发中遇到的路径问题总结如下: 1. 如何读取Application.streamingAssetsPath下的文件? Edit.iOS ...

  2. 【Unity系统知识】之unity文件操作路径

    IOS:Application.dataPath :                      Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx ...

  3. unity优化 — UGUI纹理格式的选择

    首次界面打开加载的资源(如 贴图)会被缓存在内存中,再次打开界面由于内存中已有了资源 所以会更快.如何让首次打开界面会更快呢? 图片是否进行了有效的压缩.Android 平台下不带透明通道 优先使用E ...

  4. Unity数据存储路径总结

    一.在项目根目录中创建Resources文件夹来保存文件.可以使用Resources.Load("文件名字,注:不包括文件后缀名");把文件夹中的对象加载出来.注:此方可实现对文件 ...

  5. MyBatis Java不同方式加载文件时的路径格式问题、Mybatis中加载.properties文件

    public class LoadPropTest { public static void main(String[] args) throws IOException { //一.Properti ...

  6. Unity四种路径总结

    四种路径的权限:                                            Application.dataPath 包含游戏数据文件夹的路径(只读) Applicatio ...

  7. Qt之OpenSSL(有pro文件的路径格式)

    简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 简述 下载安装 使用 更多参考 下载安装 ...

  8. unity插件开发——AssetDatabase

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

  9. javaWeb项目中的路径格式 请求url地址 客户端路径 服务端路径 url-pattern 路径 获取资源路径 地址 url

    javaweb项目中有很多场景的路径客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知 ...

随机推荐

  1. 通过keras例子理解LSTM 循环神经网络(RNN)

    博文的翻译和实践: Understanding Stateful LSTM Recurrent Neural Networks in Python with Keras 正文 一个强大而流行的循环神经 ...

  2. spring-boot-2.0.3启动源码篇三 - run方法(二)之prepareEnvironment

    前言 此系列是针对springboot的启动,旨在于和大家一起来看看springboot启动的过程中到底做了一些什么事.如果大家对springboot的源码有所研究,可以挑些自己感兴趣或者对自己有帮助 ...

  3. 让Python代码更快运行的 5 种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和 ...

  4. Python获得百度统计API的数据并发送邮件

    Python获得百度统计API的数据并发送邮件 小工具  本来这么晚是不准备写博客的,当是想到了那个狗子绝对会在开学的时候跟我逼逼这个事情,所以,还是老老实实地写一下吧.   Baidu统计API的使 ...

  5. 绝对路径的表示方式为什么是"/usr"而不是"//usr"

    今天闲逛贴吧,竟然看到有个人问绝对路径的表示方式为什么不是//usr/local而是/usr/local.原文: 我想99%的人都没想过这个问题,都理所当然的认为:它不就是根"/" ...

  6. 应用负载均衡之LVS(五):lvs和nginx的wrr加权调度算法规律分析

    返回LVS系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html 加权调度算法(wrr)是一种很常见的调度算法.它们按照权重比例进行调度,但实际调 ...

  7. 五分钟彻底学会iptables防火墙--技术流ken

    iptables简介 IPTABLES 是与最新的 3.5 版本 Linux内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, ...

  8. IdentityServer开题篇

    最近也研究了一段时间的IdentityServer4,园里关于IdentityServer的文章也很多,这里也简单写写,做做记录(文笔不佳,见谅). 1.identityserver是什么? Iden ...

  9. ProtoBuf使用指南(C++)

    ProtoBuf使用指南(C++) Created: Mar 12, 2019 6:47 PM Last Edited Time: Mar 22, 2019 1:51 PM 1.安装部署 去官网(gi ...

  10. Java多线程之wait、notify/notifyAll 详解,用wait 和notifyAll 以及synchronized实现阻塞队列,多线程拓展之ReentrantLock与Condition

    前言:这几天看了很多关于多线程的知识,分享一波.(但是目前接触的项目还未用到过,最多用过线程池,想看线程池 请看我之前的博客) 关于基本的理论等 参考如下: https://www.cnblogs.c ...