assetPath | 要加载的资源的文件系统路径。 |
返回 assetPath
下的主资源对象。
所有路径均是相对于项目文件夹的路径,例如:"Assets/MyTextures/hello.png"。
另请参阅:AssetDatabase.LoadAssetAtPath、AssetDatabase.LoadAllAssetsAtPath、AssetDatabase.LoadAllAssetRepresentationsAtPath。
using System.Collections.Generic; using UnityEngine; using UnityEditor;
public class MyPlayer : MonoBehaviour { [MenuItem("AssetDatabase/AssignMaterialsToModels")] static void AssignGunMaterialsToModels() { //Get all the materials that have the name gun in them using LoadMainAssetAtPath var materials = new List<Material>(); 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; } } }