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