我在Unity(C#)上编写简单的游戏
我有玩家,想要制造毁灭者,这将摧毁玩家。
我创造了驱逐舰的预制件。接下来,我创建Quad。
我已经产生了脚本:
using UnityEngine;
using System.Collections;
public class SpawnScript : MonoBehaviour {
public GameObject[] obj;
public float spawnMin = 1f;
public float spawnMax = 2f;
// Use this for initialization
void Start () {
Spawn();
}
void Spawn()
{
Instantiate(obj[Random.Range(0, obj.GetLength(0))], transform.position, Quaternion.identity);
Invoke("Spawn", Random.Range(spawnMin, spawnMax));
}
}
我也写DestroyerScript:
using UnityEngine;
using System.Collections;
public class DestroyerScript : MonoBehaviour {
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Application.LoadLevel(1);
return;
}
if (other.gameObject.transform.parent)
{
Destroy(other.gameObject.transform.parent.gameObject);
}
else
{
Destroy(other.gameObject);
}
}
}
我的驱逐舰产卵,但当玩家得到它时,我没有Game Over屏幕。
答案 0 :(得分:0)
向玩家和“玩家驱逐舰”添加刚体,然后在你的玩家驱逐舰上设置onTriggerEnter
,如下所示:
void OnTriggerEnter(Collider other) {
Destroy(other.gameObject);
}
对于一些微调,你可以做一些检查,如果其他对象实际上是毁灭者(你可以比较标签或者什么,我不会去现在太详细了。)
编辑:取消选中BoxColliders上的“isTrigger”,试试这个:
void OnCollisionEnter (Collision col)
{
Destroy(col.gameObject);
}