2016-11-09 75 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

是否可以減小光環的大小? –