如何从球体和块中检测颜色?

时间:2016-10-15 07:32:51

标签: unity3d

我需要当我的绿色球体与我的绿色块碰撞,游戏继续,当我的红色球体与我的绿色块碰撞时,游戏结束。如何??

碰撞脚本:

public class Colision : MonoBehaviour {

public Text points;
int contador=0;

void OnCollisionEnter(Collision col){
    if ( col.gameObject.name == "Cube") {

        col.gameObject.SetActive(false);
        contador = contador + 1;
        points.text = "" + contador;

    }


    if ( col.gameObject.name == "Cube(Clone)") {
        col.gameObject.SetActive(false);
        contador = contador + 1;
        points.text = "" + contador;


    }

}

1 个答案:

答案 0 :(得分:0)

从你的文字我明白,当假设玩家击中绿色框时,没有任何事情发生。但当他击中红色框时,游戏结束。你并没有在你的情况下定义“结束”意味着什么,但我想用“游戏结束”文本加载新场景就是你的意思。所以我在答案中这样做了。

1.将此脚本放在播放器上(或对象将与红色盒子碰撞)并给它一些对撞机。

2.在统一中创建新标签并将其命名为“红色”。

3.将此标签分配给将结束游戏的对象。

4.设置红色物体对撞机“触发器”为TRUE,其标签为红色。

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class collisionTest : MonoBehaviour {

  void OnTriggerEnter(Collider trigg)
  {
    if (trigg.gameObject.tag == "Red")
    {
        Debug.Log("I have collided with trigger" + trigg.gameObject.name);
        //do your ending stuff
        SceneManager.LoadScene("exit",LoadSceneMode.Single);
    }
  }
}