簡體   English   中英

RayCastHit2D無法檢測到播放器

[英]RayCastHit2D does not detect Player

我正在嘗試從實例化的導彈預制件投射2D射線,如下所示:

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

public class EnemyMissile : MonoBehaviour {


    void Update () {
        RaycastHit2D hit = Physics2D.Raycast(transform.position, Vector2.down,1f);
        Debug.DrawRay(transform.position, Vector2.down, Color.green);
        if(hit)
        {
            print("Hit");
        }
        else
        {
            print("No hit");
        }
    }
}

我在場景中可以清楚地看到射線穿過播放器: 在此處輸入圖片說明

播放器具有Rigidbody2D和BoxCollider2D作為觸發器: 在此處輸入圖片說明

EnemyMissile有自己的RigidBody2D和BoxCollider2D作為觸發器: 在此處輸入圖片說明

但是我在控制台上看不到任何內容

從導彈上發射射線的想法是當EnemyMissile走向Player時播放AudioClip。

我已經看到: Raycast Hit Collider始終為NULL Physics2D.Raycast返回null

謝謝您的幫助。

編輯以回答@Monofuse評論:當我選擇播放器時,變換為:x:0.4567,y:-1.58,z:0

在此處輸入圖片說明

當我選擇導彈時,變換為:x:0.3699,y:-1.054,z:0

在此處輸入圖片說明

編輯以回答@Ada Nub:

默認情況下,我同時選中了這兩個選項:查詢命中觸發器和查詢起始於碰撞器。

現在,我沒有選中“在碰撞器中啟動查詢”,但是結果是一樣的,我在控制台上看不到打印內容:

在此處輸入圖片說明

我意識到自己的錯誤,未按下控制台中的“信息”選項卡: 在此處輸入圖片說明

現在它可以工作了: 在此處輸入圖片說明

您是否已在“編輯”>“項目設置”>“ Physics2D”中打開“查詢命中觸發器”? 默認情況下,Raycast不觸發觸發器,因此這可能是您的問題。

“查詢命中觸發器”選項的圖像

它下面的選項“從對撞機開始查詢”可能也值得研究; 由於您是從導彈對撞機內部投射光線,因此您可能希望取消選中該選項,以免它不計入作為攻擊源的導彈。

暫無
暫無

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

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