我正试图制造一个会生成的弹丸,当它击中玩家时,他会被摧毁。我必须提到,将使用“实例化”命令生成弹丸,使其成为“克隆的游戏对象”。在脚本中,我写道,如果弹丸击中另一个带有“玩家”标记的游戏物体,则其命中的游戏物体将被销毁,但在运行代码并弹丸击中玩家后,他不会被销毁。我检查了一下,标签确实显示“玩家”。我在代码中加入了一条调试命令,并设法找出未检测到标签。投射物生成器的脚本和投射物本身是分开的,因此我将仅显示投射物脚本,因为它是有问题的脚本。我不得不提到,该脚本不会产生任何错误,并且除了我上面提到的内容之外,模拟运行都很好。
public class Bulletboi : MonoBehaviour
{
public float speed;
private Transform player;
private Vector2 target;
public GameObject Elven;
void Start()
{
player = GameObject.FindGameObjectWithTag("player").transform;
target = new Vector2(player.position.x, player.position.y);
}
void Update()
{
transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
if(transform.position.x == target.x && transform.position.y == target.y)
{
DestroyProjectile();
}
}
void OnEnterTrigger2D(Collision2D other)
{
if (other.gameObject.tag.Equals("player"))
{
Debug.Log("bbbb");
DestroyProjectile();
Destroy(other.gameObject);
}
}
void DestroyProjectile()
{
Destroy(gameObject);
}
}
答案 0 :(得分:0)
没关系,我决定稍微更改一下脚本,然后将其放到播放器上,使其检测弹丸的标签,现在它可以工作了。