@yraiv

Как проверить во что врезался рейкаст?

Хочу получать коллайдер объекта, в который врезался, как это сделать?
if(Physics.Raycast(transform.position, _direction, out hit, 10f) ==  .... )
  • Вопрос задан
  • 545 просмотров
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Переменная hit из вашего примера имеет тип RaycastHit (ссылочка на документацию), у которого есть свойство collider. Сам же метод Raycast возвращает логическое значение, определяющее, было ли касание в указанном направлении и расстоянии. Выглядеть это должно как-то так:
if (Physics.Raycast(transform.position, _direction, out hit, 10f)) {
	if (hit.collider == yourCollider) {
		// some logic
	}
}

Также это всегда можно совместить с TryGetComponent, если логика должна зависеть от определённого компонента, который может быть на цели (ссылочка). Как-то так:
private MyComponent GetTarget() {
	if (Physics.Raycast(transform.position, _direction, out hit, 10f))
		if (hit.transform.TryGetComponent(out MyComponent m))
			return m;
	return null;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы