为什么我的硬币在玩家与它碰撞时没有消失?



我刚开始编码,所以我还有很多东西要学。当我玩游戏时,Unity没有犯任何错误,但当玩家触金时也没有发生任何事情。我希望当游戏触及金牌时,它会消失,但我不知道为什么它不起作用。(碰撞部分是最后一部分(

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
private Rigidbody2D myRigidbody;
private Animator anim;
[SerializeField]
private int speed;
private bool lookright;

void Start()
{
myRigidbody = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();

lookright = true;
}

void Update()
{
float horizontal = Input.GetAxis("Horizontal");
movements(horizontal);
changedirection(horizontal);
}
private void movements (float horizontal)
{
anim.SetFloat ("Walk", Mathf.Abs(horizontal));
myRigidbody.velocity = new Vector2 (horizontal*speed, myRigidbody.velocity.y);
}
private void changedirection(float horizontal)
{
if (horizontal > 0 && !lookright || horizontal < 0 && lookright)
{
lookright = !lookright;
Vector3 direction = transform.localScale;
direction.x *= -1;
transform.localScale = direction;
}
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "gold")
{
other.gameObject.SetActive(false);
}

} }

这是黄金的Unity检查员

IsTrigger设置为true时,OnCollisionEnter2D(Collision collision)不会激发。将其更改为OnTriggerEnter2D(Collider2D collider),它就会工作。

看看对撞机的文档。

最新更新