【问题标题】:Make object that destroy player制作摧毁玩家的物体
【发布时间】:2016-03-11 23:05:09
【问题描述】:

我在 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);
        }
    }
}

我的驱逐舰正在生成,但是当玩家得到它时,我没有游戏结束屏幕。

【问题讨论】:

标签: c# android unity3d


【解决方案1】:

刚体添加到玩家和“玩家驱逐舰”,然后在您的玩家驱逐舰上设置onTriggerEnter,如下所示:

void OnTriggerEnter(Collider other) {
    Destroy(other.gameObject);
}

对于一些微调,你可以做一些检查 other 对象是否实际上是 Destroyer(你可以比较 tag 什么的,我不会去现在说得太详细了)。

编辑:取消选中 BoxColliders 上的“isTrigger”并试试这个:

void OnCollisionEnter (Collision col)
{
         Destroy(col.gameObject);
}

【讨论】:

  • OnTriggerEnter 还是 OnTriggerEnter2D?
  • 我猜你的游戏是 3D 的吧?如果是,请使用常规 OnTriggerEnter。不要忘记先在 BOTH 对象上设置刚体。
  • 如果是2D游戏,使用2D触发器进入。
  • 你添加了二维刚体吗?
  • 是的,在玩家和驱逐舰上
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 2014-11-07
相关资源
最近更新 更多