| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- namespace YooAsset.Editor
- {
- [Serializable]
- public class AssetInfo : IComparable<AssetInfo>
- {
- private string _fileExtension = null;
- /// <summary>
- /// 资源路径
- /// </summary>
- public string AssetPath;
- /// <summary>
- /// 资源GUID
- /// </summary>
- public string AssetGUID;
- /// <summary>
- /// 资源类型
- /// </summary>
- public System.Type AssetType;
- /// <summary>
- /// 文件格式
- /// </summary>
- public string FileExtension
- {
- get
- {
- if (string.IsNullOrEmpty(_fileExtension))
- _fileExtension = System.IO.Path.GetExtension(AssetPath);
- return _fileExtension;
- }
- }
- public AssetInfo(string assetPath)
- {
- AssetPath = assetPath;
- AssetGUID = UnityEditor.AssetDatabase.AssetPathToGUID(AssetPath);
- AssetType = UnityEditor.AssetDatabase.GetMainAssetTypeAtPath(AssetPath);
- // 注意:如果资源文件损坏或者实例化关联脚本丢失,获取的资源类型会无效!
- if (AssetType == null)
- {
- throw new Exception($"Found invalid asset : {AssetPath}");
- }
- }
- /// <summary>
- /// 是否为着色器资源
- /// </summary>
- public bool IsShaderAsset()
- {
- if (AssetType == typeof(UnityEngine.Shader) || AssetType == typeof(UnityEngine.ShaderVariantCollection))
- return true;
- else
- return false;
- }
- public int CompareTo(AssetInfo other)
- {
- return this.AssetPath.CompareTo(other.AssetPath);
- }
- }
- }
|