2D 碰撞检测不起作用
2D Collision detection not working
我一直在尝试让碰撞起作用,但到目前为止效果不佳。
这是我的 moveBall.cs,我把它放在我的 Ball Object 上。
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);
}
}
}
这是我的 movePlayer.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);
}
}
}
如果有人能给我一个tip/solution,那将对我有很大帮助!
我马上看到的一个问题是您使用的是 RigidBody 组件而不是 RigidBody2D 组件。您需要小心使用哪些组件。
此外,OnTriggerEnter2D() or OnCollisionEnter2D() 是您要查找的内容,而不是 OnCollisionTrigger2D。
如果选择使用 3d 组件,请查看 OnCollisionEnter() or OnTriggerEnter()
我一直在尝试让碰撞起作用,但到目前为止效果不佳。
这是我的 moveBall.cs,我把它放在我的 Ball Object 上。
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);
}
}
}
这是我的 movePlayer.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);
}
}
}
如果有人能给我一个tip/solution,那将对我有很大帮助!
我马上看到的一个问题是您使用的是 RigidBody 组件而不是 RigidBody2D 组件。您需要小心使用哪些组件。
此外,OnTriggerEnter2D() or OnCollisionEnter2D() 是您要查找的内容,而不是 OnCollisionTrigger2D。
如果选择使用 3d 组件,请查看 OnCollisionEnter() or OnTriggerEnter()