[英]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.