欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

unity碰撞检测变色的简单应用

程序员文章站 2024-03-16 21:34:04
...

一开始物体带有初始颜色,

碰撞到物体时变色(分别有黄色和蓝色)

离开被碰撞物体时变色(红色,黑色,白色顺序切换)

public class SE : MonoBehaviour {

	int a = 2;
	int b = 3;
		void OnTriggerEnter(Collider other)//触发器可以穿透,所以把重力去掉
									   // OnTriggerEnter:触发接触的那一帧被调用  
		{
        	if (other.CompareTag("1"))//被碰撞的物体标签是(1)
        	{
                if (a%2==0)
               {
        		other.GetComponent<MeshRenderer>().material.color = Color.yellow;
        				//被碰撞物体,添加组件<网格渲染>	材质球的颜色	变成  黄色
        	   }
                else if (a%2==1)
               {
        		other.GetComponent<MeshRenderer>().material.color = Color.blue;
        	   }
        		a++;					//实现颜色切换
        		Debug.Log("enter");			//同等于print("")输出
        		Debug.Log(other.gameObject.name);       //同等于print("")输出	
        			  //other.gameObject.name 被碰撞物体的名字
        	}	
		 }
        void OnTriggerExit(Collider other)		//  触发结束被调用  
    	{
                if (b%3==0)
                {
        			other.GetComponent<MeshRenderer>().material.color = Color.red;
        		}
                else if(b%3==1)
                {
        			other.GetComponent<MeshRenderer>().material.color = Color.black;
        		}
        		else if (b % 3 == 2)
        		{
        			other.GetComponent<MeshRenderer>().material.color = Color.white;
        		}
        		Debug.Log("Exit");//同等于print("")输出
        		b++;
    	}
}