版本: Unity 6 (6000.0)
语言英语
  • C#

AssetDatabase.LoadMainAssetAtPath

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议,并在必要时进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Object LoadMainAssetAtPath(string assetPath);

参数

assetPath 要加载的资源的文件系统路径。

描述

返回位于 assetPath 的主资源对象。

“主”资源是层次结构根部的资源(例如,一个 Maya 文件,其中可能包含多个网格和游戏对象)。

所有路径相对于项目文件夹,例如:“Assets/MyTextures/hello.png”。

其他资源:AssetDatabase.LoadAssetAtPathAssetDatabase.LoadAllAssetsAtPathAssetDatabase.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; } } }