Unity3d 动态加载材质方法

先上代码:

Texture img = (Texture)Resources.Load("LedPicture");
GameObject.Find("Led").renderer.material.mainTexture = img;


稍微解释一下:

1、"LedPiture"是一张图片(LedPicture.png)

2、这两句话是将Led这个Object的材质换成LedPicture.png的样子


注:LedPicture.png要放在工程文件的Assets\Asset\Resources这个目录下,如果没有Resources目录则先建一个Resources文件夹,然后把图片放进去就可以了!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用以下步骤来动态加载材质并随机更新材质: 1. 创建一个空的 GameObject,命名为“MaterialLoader”。 2. 在 MaterialLoader 上添加以下脚本: ```csharp public class MaterialLoader : MonoBehaviour { public string[] materialPaths; public Renderer targetRenderer; private List<Material> materials = new List<Material>(); private void Start() { foreach (string path in materialPaths) { Material material = Resources.Load<Material>(path); if (material != null) { materials.Add(material); } } if (materials.Count > 0 && targetRenderer != null) { targetRenderer.material = materials[0]; } } public void ChangeMaterial() { int index = Random.Range(0, materials.Count); targetRenderer.material = materials[index]; } } ``` 3. 在 Unity 的 Resources 文件夹中创建一个名为“Materials”的文件夹,并将所有需要随机更新的材质都放在该文件夹中。 4. 在 MaterialLoader 组件上设置 materialPaths 属性为所有材质文件的路径,例如:“Materials/Red”,“Materials/Blue”等。 5. 在场景中将需要更新材质的对象上添加 Renderer 组件。 6. 将 MaterialLoader 组件拖放到场景中的对象上,并将 targetRenderer 属性设置为需要更新材质的对象的 Renderer 组件。 7. 在需要更新材质的时候,调用 MaterialLoader 的 ChangeMaterial 方法即可。 例如,在某个触发事件中,可以这样调用: ```csharp GetComponent<MaterialLoader>().ChangeMaterial(); ``` 这样就可以随机更新目标对象的材质了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值