如何检测2个物体碰撞时相同的颜色

本文关键字:碰撞 颜色 何检测 检测 2个 | 更新日期: 2023-09-27 18:17:04

我有一个问题Unity:

我有一个物体与两个物体碰撞,第一个是蓝色的,第二个是红色的。

我想知道如何检测当两个对象是相同的颜色和做确定的动作 2个对象之间的碰撞是清楚的,但如何检测你的颜色对我来说是如此困难。

你怎么能做到呢?

colision:

public class Colision : MonoBehaviour {
    //public GameObject HaloPrefab; // empty with halo applied to it...
    public Text points;

    void OnCollisionEnter(Collision col){

        if ( col.gameObject.name == "Cube") {
            col.gameObject.SetActive(false); // Lo que hago es que si colisiona desaparezca el objeto, pero necesito que haga eso si ambos son del mismo color. 
        }


        if ( col.gameObject.name == "Cube(Clone)") {
            col.gameObject.SetActive(false);

        }     
}

我的对象可以改变颜色,代码是这样的:和作品

public class ChangeColor : MonoBehaviour {
    public Material[] materials;
    public Renderer rend;
    private int index = 1;
    // Use this for initialization
    void Start () {
        rend = GetComponent<Renderer> ();
        rend.enabled = true;
    }
    public void Update() {
        if (materials.Length == 0) {
            return;
        }
        if (Input.GetMouseButtonDown (0)) {
            index += 1;
            if (index == materials.Length + 1) {
                index = 1; 
            }
            print (index);
            rend.sharedMaterial = materials [index - 1];                        
        }
    }
}

如何检测2个物体碰撞时相同的颜色

像这样:

void OnCollisionEnter(Collision col)
{
    var me = gameObject.GetComponent<Renderer>();
    var other = col.gameObject.GetComponent<Renderer>();
    if (me != null && other != null)
    {
        if (me.sharedMaterial.color == other.sharedMaterial.color)
        {
            // congratulation you are colliding with same color.
        }
    }
}