
我希望当玩家触动心灵时,敌人就会被消灭。我的代码出了什么问题?
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);
}
}
}发布于 2021-06-12 19:09:18
你没有提供错误代码或任何东西,所以我没有太多的东西要做;-;
确保代码中的标记与项目中的代码相同,并将标记放在中心位置。
确保玩家游戏对象已分配给敌人。
确保玩家和心脏都有一个2d对撞机没有设置为触发。
发布于 2021-06-12 20:13:02
检查您的标签拼写。你这儿有个拼写错误。
发布于 2021-06-12 20:16:11
如果没有错误,就很难找出问题所在。从外观上看,您可能拼写错了gameObject.CompareTag("haret"),而它应该是gameObject.CompareTag("heart")。
还要确保脚本已指定给敌人,已在检查器中指定了player gameObject,并且已在检查器中将player gameObject的碰撞器设置为isTrigger。
https://stackoverflow.com/questions/67948071
复制相似问题