【问题标题】:Destroy gameobject in Unity在 Unity 中销毁游戏对象
【发布时间】:2021-06-14 16:42:00
【问题描述】:

我希望在玩家触动心脏时消灭敌人。我的代码有什么问题?

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

public class enemy : MonoBehaviour
{
    public GameObject player;
    public float speed;
    void Update()
    {

        transform.position = Vector2.MoveTowards(transform.position, player.transform.position, 
speed * Time.deltaTime);

   
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (player.gameObject.CompareTag("haret"))
        {
            Destroy(gameObject);
         }
     }
}

【问题讨论】:

  • 你在 CompareTg("haret") 函数中写了 haret。也许问题是这个错字。应该是心
  • 遇到任何错误?通常使用transform.position 可能会破坏物理和碰撞检测..

标签: unity3d


【解决方案1】:

你没有提供错误代码或任何东西,所以我没有太多可做的;-;

确保代码中的标签与项目中的代码相同,并将标签放在心上。

确保玩家游戏对象已分配给敌人。

确保玩家和心脏都有一个未设置为触发的 2d 对撞机

【讨论】:

    【解决方案2】:

    检查您的标签拼写。你有一个拼写错误。

    【讨论】:

      【解决方案3】:

      如果没有错误,很难找出问题所在。从外观上看,您可能拼错了 gameObject.CompareTag("haret"),而应该是 gameObject.CompareTag("heart")

      还要确保脚本已分配给敌人,您已在检查器中分配了player 游戏对象,并且您已在检查器中将心脏游戏对象的碰撞器设置为 isTrigger。

      【讨论】:

        猜你喜欢
        • 2018-04-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-10
        • 1970-01-01
        • 2012-12-06
        相关资源
        最近更新 更多