2D 碰撞检测不起作用

本文关键字:不起作用 碰撞检测 2D | 更新日期: 2023-09-27 18:36:53

我一直在尝试让碰撞工作,但到目前为止还不好。

截图 统一

这是我的移动球.cs我把它放在我的球对象上。

using UnityEngine;
using System.Collections;
public class moveBall : MonoBehaviour {
float balSnelheid = 1;
void Update () {
    transform.Translate (0, balSnelheid * Time.deltaTime, 0);
}
void OnCollisionTrigger2D (Collision2D coll) {
    if (coll.gameObject.name == "Brick") {
        Destroy(coll.gameObject);
    }
  }
}

这是我的移动播放器.cs我把它放在我的播放器对象上。

using UnityEngine;
using System.Collections;
public class movePlayer : MonoBehaviour {
public float snelheid;
// Use this for initialization
void Start () {
    Screen.showCursor = false;
}
// Update is called once per frame
void Update () {
    if (transform.position.x + Input.GetAxis ("hor") * snelheid * Time.deltaTime < 2.9) {
        if (transform.position.x + Input.GetAxis ("hor") * snelheid * Time.deltaTime > -2.9) {
            transform.Translate(Input.GetAxis("hor") * snelheid * Time.deltaTime, 0, 0);
        }
    }
    if (transform.position.x + Input.GetAxis ("hor") * snelheid * Time.deltaTime > 3) {
        transform.position = new Vector3(2.9f, -4.7f, 0);
    } else if (transform.position.x + Input.GetAxis ("hor") * snelheid * Time.deltaTime < -3) {
        transform.position = new Vector3(-2.9f, -4.7f, 0);
    }
  }
}

如果有人能给我一个提示/解决方案,它会对我有很大帮助!

2D 碰撞检测不起作用

我马上看到的一个问题是你使用的是RigidBody组件而不是RigidBody2D组件。您需要小心使用哪些组件。

此外,OnTriggerEnter2D() 或 OnCollisionEnter2D() 是您要查找的,而不是 OnCollisionTrigger2D。

如果选择使用 3d 组件,请查看 OnCollisionEnter() 或 OnTriggerEnter()