簡體   English   中英

為什么我的碰撞沒有檢測到(統一)

[英]Why is my collision not detecting (unity)

所以現在我被困住了。 我想用我的代碼制作傳送帶,但我沒有遇到這個問題。 我找到了這段代碼,

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ConveyorPush : MonoBehaviour {
    public float speed = 3.0f;
    void OnTriggerStay(Collider other) {

        // Assign velocity based upon direction of conveyor belt
        // Ensure that conveyor mesh is facing towards its local Z-axis
        float conveyorVelocity = speed * Time.deltaTime;
        Rigidbody rigidbody = other.gameObject.GetComponent<Rigidbody>();
        rigidbody.velocity = conveyorVelocity * transform.forward;
    }
}   

我理解它,但由於某種原因,我的傳送帶上的觸發對撞機沒有檢測到精靈與具有剛體的非觸發對撞機的碰撞。

    void OnCollisionEnter(Collision collisionInfo)
    {
        if (collisionInfo.collider.tag == "Obstacle")
        {
            movement.enabled = false;
            FindObjectOfType<GameManager>().GameOver();
            rb.useGravity = false;
            rb.AddExplosionForce(1000,transform.position, 200);
        }

    }

當您在函數中定義對撞機時,您沒有在任何地方使用它

如果你使用 2d 那么你應該使用 2d collider

    void OnCollisionEnter(Collision2D collisionInfo)
    {
        if (collisionInfo.collider.tag == "Obstacle")
        {
            movement.enabled = false;
            FindObjectOfType<GameManager>().GameOver();
            rb.useGravity = false;
            rb.AddExplosionForce(1000,transform.position, 200);
        }

    }

Collision 和 Collision2D 是你必須定義的類型

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM