public Vector3 normal;
Описание
Нормаль поверхности, на которую попадает луч.
using UnityEngine;
public class Example : MonoBehaviour
{
// Расчет отражения "лазерного луча" от объекта, на который нажали.
// Объект, из которого стреляет луч. Входящий луч будет
// не быть видимым, если для этого используется камера!
Transform gunObj;
void Update()
{
if (Input.GetMouseButton(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
// Находим линию от пушки до точки, по которой щелкнули.
Vector3 incomingVec = hit.point - gunObj.position;
// Используйте нормаль точки для расчета вектора отражения.
Vector3 reflectVec = Vector3.Reflect(incomingVec, hit.normal);
// Нарисуйте линии, чтобы показать входящий «луч» и отражение.
Debug.DrawLine(gunObj.position, hit.point, Color.red);
Debug.DrawRay(hit.point, reflectVec, Color.green);
}
}
}
}
Смотрите так же: Physics.Raycast, Physics.Linecast, Physics.RaycastAll.