RaycastHit.normal
var normal: Vector3;
Vector3 normal;
normal as Vector3
Description

The normal of the surface the ray hit.

	// Calculate the reflection of a "laser beam" off a clicked object.
	
	// The object from which the beam is fired. The incoming beam will
	// not be visible if the camera is used for this!
	var gunObj: Transform;
	
	
	function Update () {
		if (Input.GetMouseButton(0)) {
			var hit: RaycastHit;
			var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			
			if (Physics.Raycast(ray, hit)) {
				// Find the line from the gun to the point that was clicked.
				var incomingVec = hit.point - gunObj.position;
				
				// Use the point's normal to calculate the reflection vector.
				var reflectVec = Vector3.Reflect(incomingVec, hit.normal);
				
				// Draw lines to show the incoming "beam" and the reflection.
				Debug.DrawLine(gunObj.position, hit.point, Color.red);
				Debug.DrawRay(hit.point, reflectVec, Color.green);
			}
		}
	}
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public 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);
            }
        }
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public gunObj as Transform

	def Update() as void:
		if Input.GetMouseButton(0):
			hit as RaycastHit
			ray as Ray = Camera.main.ScreenPointToRay(Input.mousePosition)
			if Physics.Raycast(ray, ):
				incomingVec as Vector3 = (hit.point - gunObj.position)
				reflectVec as Vector3 = Vector3.Reflect(incomingVec, hit.normal)
				Debug.DrawLine(gunObj.position, hit.point, Color.red)
				Debug.DrawRay(hit.point, reflectVec, Color.green)

See Also: Physics.Raycast, Physics.Linecast, Physics.RaycastAll.