2016-11-09 33 views
0

我有1个问题统一如何检测2个物体碰撞时颜色是否相同?

我有2米的物体的碰撞1个对象,首先是蓝色,第二个是红色。

我想知道这两个对象是相同的颜色,并做确定的行动 Collisin 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. 
     } 
    } 
} 
+0

完美!我适应这个代码并且工作! :) –

+0

还有一件事,如果我的对象是不同的颜色我适用这个(大小的对象):** gameObject.transform.localScale/= 2; **但...我的对象也有晕,**怎么办那物体和光环的尺寸都减小了,同时呢?** –

+0

是否可以减小光环的大小? –