Unity使用脚本Script改变材质Material

Unity使用脚本Script改变材质MaterialUnity 版本 Unity 5 6 2f1 Personal 64bit 效果如下 一 创建平面对象和 Cube 对象 首先创建 1 个平面 plane 对象和 2 个 Cube 对象 一个在上 一个在下 以确保上面的能够掉下来碰撞到下面的 Cube 要加上 Rigibody 勾选上 Use

大家好,我是讯享网,很高兴认识大家。

Unity版本:Unity 5.6.2f1 Personal(64bit)

效果如下:

讯享网


一、创建平面对象和Cube对象

首先创建1个平面plane对象和2个Cube对象,一个在上,一个在下,以确保上面的能够掉下来碰撞到下面的。Cube要加上Rigibody,勾选上Use Gravity。如下图所示:


二、实现改变材质的脚本和触发逻辑

触发逻辑要根据实际情况来实现。

本例的触发逻辑非常简单粗暴:给地板上的绿色Cube加个名为"Box"的tag,当上面的红色Cube跟别的游戏对象发生碰撞时,改变材质:
1.当碰撞到tag为"Box"的游戏对象,例如绿色Cube,改变到绿色材质。
2.当碰撞到其他游戏对象,改变到蓝色材质。

第一步:将绿色Cube的tag修改成"Box":

(一开始没有Box这个tag,要选择Add Tag进行新增)

第二步:给上面的红色Cube加上以下脚本:

using System.Collections; using System.Collections.Generic; using UnityEngine; public class ChangeMaterial : MonoBehaviour { 
    public Material[] material; Renderer rend; // Use this for initialization void Start () { 
    rend = GetComponent<Renderer> (); rend.enabled = true; rend.sharedMaterial = material [0]; } void OnCollisionEnter (Collision col) { 
    if (col.gameObject.tag == "Box") { 
    //如果撞到的游戏对象是Box rend.sharedMaterial = material [1]; } else { 
    rend.sharedMaterial = material [2]; } } // Update is called once per frame void Update () { 
    } } 

讯享网

三、修改游戏对象的材质列表

本例中要改变的是红色Cube的材质。对红色Cube,添加完上述脚本后,将可能用上的3种材质按顺序加进去,分别为红色、绿色和蓝色材质。


参考资料:Scripting: Change Material of an Object | Unity Tutorial

小讯
上一篇 2025-03-22 11:32
下一篇 2025-03-24 07:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/58954.html