Объявление
public static Object LoadMainAssetAtPath(string assetPath);Параметры
assetPath | Путь к файловой системе загружаемого ресурса. |
Описание
Возвращает основной объект актива по адресу assetPath
.
«Основной» ресурс — это ресурс в корне иерархии (например, файл Maya, который может содержать несколько сеток и игровых объектов).
Все пути указаны относительно папки проекта, например: "Assets/MyTextures/hello.png".
Смотрите так же: AssetDatabase.LoadAssetAtPath, AssetDatabase.LoadAllAssetsAtPath, AssetDatabase.LoadAllAssetRepresentationsAtPath.
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class MyPlayer : MonoBehaviour
{
[MenuItem("AssetDatabase/Assign Materials To Models")]
static void AssignGunMaterialsToModels()
{
var materials = new List<Material>();
//Get all the materials that have the name gun in them using LoadMainAssetAtPath
foreach (var asset in AssetDatabase.FindAssets("t:Material gun"))
{
var path = AssetDatabase.GUIDToAssetPath(asset);
materials.Add((Material)AssetDatabase.LoadMainAssetAtPath(path));
}
var materialID = 0;
//Assign gun materials to their corresponding models MeshRenderer
foreach (var asset in AssetDatabase.FindAssets("t:Model Gun"))
{
if (materialID >= materials.Count) materialID = 0;
var path = AssetDatabase.GUIDToAssetPath(asset);
var material = materials[materialID++];
material.shader = Shader.Find("Standard");
var modelMesh = (MeshRenderer) AssetDatabase.LoadAssetAtPath(path, typeof(MeshRenderer));
modelMesh.sharedMaterial = material;
}
}
}