Я пытаюсь разыграть 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");
}
}
}
Я ясно вижу на сцене, что Луч проходит через Плеер:
![enter image description here](https://i.stack.imgur.com/NveaN.png)
Игрок имеет триггер Rigidbody2D и BoxCollider2D:
![enter image description here](https://i.stack.imgur.com/u99Zm.png)
И у EnemyMissile есть собственные RigidBody2D и BoxCollider2D в качестве триггера:
![enter image description here](https://i.stack.imgur.com/eh5Fv.png)
Однако я не вижу ничего напечатанного на консоли
Идея наложить Луч из ракеты состоит в том, чтобы сыграть аудиоклип, когда EnemyMissile направляется к игроку.
Я видел:
Raycast Hit Collider всегда NULL
Physics2D.Raycast возвращает ноль
Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ , чтобы ответить @Monofuse комментарий: Когда я выбираю Player, преобразование:
х: 0,4567, у: -1,58, з: 0
![enter image description here](https://i.stack.imgur.com/DPBX1.png)
Когда я выбираю ракету, Transform:
х: 0,3699, у: -1,054, з: 0
![enter image description here](https://i.stack.imgur.com/sbs2f.png)
РЕДАКТИРОВАТЬ, чтобы ответить @Ada Nub:
По умолчанию у меня выбрана опция: триггеры нажатия запросов и запуск запросов в коллайдерах.
Теперь у меня отключен запуск запросов в коллайдерах, но результат тот же, я не вижу отпечаток на консоли:
![enter image description here](https://i.stack.imgur.com/DjgiG.png)
Я осознал свою ошибку, у меня не нажата вкладка Информация в консоли:
![enter image description here](https://i.stack.imgur.com/1eCoB.png)
И теперь это работает:
![enter image description here](https://i.stack.imgur.com/7PZCE.png)