Ничего не разрушается? - PullRequest
0 голосов
/ 11 июля 2020

Ничего не разрушается? У меня есть один враг - сфера с коллайдером, твердое тело и куб с тем же самым. Я пробовал включить триггеры на любом из них, но гравитация падает и ничего не разрушается! Пожалуйста, помогите!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DestroyOnCollision : MonoBehaviour
{
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.CompareTag("Player"))
        {
            Destroy(collision.gameObject);
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Enemy"))
        {
            Destroy(other.gameObject);
        }
        
    }
}

1 Ответ

0 голосов
/ 11 июля 2020

Вам нужно добавить свой скрипт к Player и Enemy GameObjects вместо того, чтобы помещать их в один отдельный скрипт.

Потому что OnTriggerEnter и OnCollisionEnter вызываются для объекта, который сталкивается или входит в триггер

Вы не можете просто создать универсальный сценарий, который обрабатывает все столкновения, потому что этот сценарий или объект ни с чем не сталкивается. Из-за этого функции никогда не вызываются и, следовательно, ничего не уничтожается.

Изменен скрипт игрока (Добавить):

// The Enemey needs to have IsTrigger enabled

 private void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Enemy"))
     {
          Destroy(other.gameObject);
     }
        
  }

Изменен скрипт врага (Добавить ):

// Player needs to have IsTrigger disabled

private void OnCollisionEnter(Collision collision)
{
    if (collision.collider.CompareTag("Player"))
    {
        Destroy(collision.gameObject);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...