public static Material LoadUnityMaterial(string materialPath)
		{
			if(materialPath.StartsWith(HEU_Defines.DEFAULT_UNITY_BUILTIN_RESOURCES))
			{
				return HEU_AssetDatabase.LoadUnityAssetFromUniqueAssetPath<Material>(materialPath);
			}
			else if (materialPath.StartsWith("Packages/"))
			{
				return HEU_AssetDatabase.LoadAssetAtPath(materialPath, typeof(Material)) as Material;
			}

			string relativePath = materialPath;
			if (relativePath.StartsWith(Application.dataPath))
			{
				// If absolute path, change to relative path
				relativePath = HEU_AssetDatabase.GetAssetRelativePath(materialPath);
			}

			Material material = null;

			string mainPath = null;
			string subPath = null;
			HEU_AssetDatabase.GetSubAssetPathFromPath(relativePath, out mainPath, out subPath);
			if(subPath != null)
			{
				// This is a subasset. Need to find it by first loading the main asset.
				Object subObject = HEU_AssetDatabase.LoadSubAssetAtPath(mainPath, subPath);
				if(subObject != null)
				{
					material = subObject as Material;
				}
			}
			else
			{
				// Try loading from Resources first
				material = Resources.Load<Material>(relativePath) as Material;
				if (material == null)
				{
					// If not in Resources, try loading from project
					HEU_AssetDatabase.ImportAsset(relativePath, HEU_AssetDatabase.HEU_ImportAssetOptions.Default);
					material = HEU_AssetDatabase.LoadAssetAtPath(relativePath, typeof(Material)) as Material;
				}
			}

			return material;
		}