【问题标题】:OnTriggerEnter2D getting calledOnTriggerEnter2D 被调用
【发布时间】:2018-10-29 19:42:39
【问题描述】:

如果敌人与子弹相撞,我会试图摧毁它。但是 OnTriggerEnter2D 不起作用。我一直在尝试解决这个问题并寻找答案几个小时,但我似乎找不到问题。

敌人脚本

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

public class EnemyManager : MonoBehaviour
{
    [SerializeField]
    private Transform target;
    [SerializeField]
    private float speed;


    // Use this for initialization
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
    }

    void OnTriggerEnter2D(Collider2D collision)
    {
        Debug.Log("Colliding with trigger");
        if (collision.CompareTag("bullet"))
        {
            Debug.Log("I got hit");
            Destroy(gameObject);
        }
    }
}

子弹

敌人

【问题讨论】:

  • 你在尝试OnCollisionEnter2D的时候,是不是也把参数改成了Collision2D

标签: c# collision unity3d-2dtools


【解决方案1】:

如果它是一个与另一个碰撞的实际对象,您想改用OnCollisionEnter2D。触发器适用于无法碰撞的对象,您只想知道它们是否重叠。

【讨论】:

    【解决方案2】:

    尝试在对撞机上切换 isTrigger 而不是子弹。

    有关如何创建 2d 对撞机,另请参阅此文档:how to destroy an item after collision

    【讨论】:

      【解决方案3】:

      您好,这是我的第一个帮助帖子,晚了 2 年半......但我遇到了类似的问题,也许可以帮助其他人。如果你有一个“敌人”脚本试试这个。我使用粉碎这个词来避免像破坏或破坏这样的内置词。

      使用这个来调用:在中放置对象“标签”在之间来销毁对象。 这种情况下的敌人

      collision.GetComponent().Smash();


      在“敌人”脚本中使用 IEnumerator“协程”

      IEnumerator SmashCo()
      {
          yield return new WaitForSeconds(.3f);
          this.gameObject.SetActive(false);
      }
      

      在“Enemy”脚本中调用这个协程: 注意:animator 是对 Unity 的 Animator 的引用

      public void SmashEnemy()
      {
          animator.SetBool("smash", true);    // Set the animator Bool for smash
          StartCoroutine(SmashCo());
      }
      

      为您的游戏对象添加一个称为粉碎的触发器。 你应该能够摧毁这样的东西。

      • 泰勒

      注意:在阴影中使用 Stack Overflow 很长一段时间,这是我的第一篇文章,如果我有任何错误,我希望得到纠正,谢谢。只是想帮忙。 *认为这是对当前答案的不同方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-27
        • 1970-01-01
        • 2016-04-03
        相关资源
        最近更新 更多