Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


Reflect(Vector3, Vector3)

Reflects a vector off the plane defined by a normal vector.
Read time 1 minuteLast updated 4 days ago

Definition

  • Type: Method
  • Namespace: UnityEngine
  • Assembly: UnityEngine.CoreModule
public static Vector3 Reflect(Vector3 inDirection, Vector3 inNormal)

Parameters

inDirection

The vector to be reflected in the plane.

inNormal

The normal vector that defines the plane of reflection.

Returns

Type

Description

Vector3The reflected vector. It has the same magnitude as
inDirection
.

Remarks

This method calculates the reflection vector using the following formula:
B = A − 2 × N × AN
where A is the incoming vector and N defines the normal (perpendicular) vector of the reflection plane.
The returned value is a vector of equal magnitude to
inDirection
but with its direction reflected.
Vec3ReflectDiagram (Reflect(Vector3, Vector3))
Reflection of a vector off a plane.

Examples

// This example moves a GameObject to the reflected position // of a second object//// To run this example, create two GameObjects at different // positions. In the Editor, assign these GameObjects as the // Original and Relflect Object variables. The reflected object// moves to the reflected position of the original object. using UnityEngine;public class ReflectExample : MonoBehaviour{ public Transform originalObject; public Transform reflectedObject; void Update() { // Makes the reflected object appear opposite of the original object, // mirrored in the y-z plane of the world reflectedObject.position = Vector3.Reflect(originalObject.position, Vector3.right); }}