我想让敌人在玩家触及心脏时被摧毁。我的代码有什么问题?
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);
}
}
}
答案 0 :(得分:0)
你没有提供错误代码或任何东西,所以我没有什么可说的;-;
确保代码中的标签与项目中的代码一致,并将标签放在心上。
确保玩家游戏对象已分配给敌人。
确保玩家和心脏都有未设置为触发的 2d 碰撞器
答案 1 :(得分:0)
检查您的标签拼写。你有一个拼写错误。
答案 2 :(得分:0)
如果没有错误,很难找出问题所在。从它的外观来看,您可能拼错了 gameObject.CompareTag("haret")
而应该是 gameObject.CompareTag("heart")
。
还要确保脚本已分配给敌人,您已在检查器中分配了 player
游戏对象,并且您已在检查器中将心脏游戏对象的碰撞器设置为 isTrigger。