Version: 5.3 (switch to 5.4b)
IdiomaEnglish
  • C#
  • JS

Idioma de script

Selecciona tu lenguaje de programación favorito. Todos los fragmentos de código serán mostrados en este lenguaje.

RaycastHit.normal

Sugiere un cambio

¡Éxito!

Gracias por ayudarnos a mejorar la calidad de la documentación de Unity. A pesar de que no podemos aceptar todas las sugerencias, leemos cada cambio propuesto por nuestros usuarios y actualizaremos los que sean aplicables.

Cerrar

No se puedo enviar

Por alguna razón su cambio sugerido no pudo ser enviado. Por favor <a>intente nuevamente</a> en unos minutos. Gracias por tomarse un tiempo para ayudarnos a mejorar la calidad de la documentación de Unity.

Cerrar

Cancelar

Cambiar al Manual
public var normal: Vector3;
public Vector3 normal;

Descripción

La normal de la superficie contra la que impactó el rayo.

	// 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 ExampleClass : 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); } } } }