Version: 5.4
public float distance ;

Descripción

La distancia desde el origen del rayo hasta el punto de impacto.

En el caso de un rayo, la distancia representa la magnitud del vector desde el origen del rayo hasta el punto de impacto.

En el caso de un swept volume o un sphere cast, la distancia representa la magnitud del vector desde el punto de origen al punto trasladado en el cual el volumen entra en contacto con el otro collider.

Tenga en cuenta que RaycastHit.point representa el punto en el espacio donde la colisión ocurre.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public float moveForce = 1.0F; public float rotateTorque = 1.0F; public float hoverHeight = 4.0F; public float hoverForce = 5.0F; public float hoverDamp = 0.5F; public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); rb.drag = 0.5F; rb.angularDrag = 0.5F; } void FixedUpdate() { rb.AddForce(Input.GetAxis("Vertical") * moveForce * transform.forward); rb.AddTorque(Input.GetAxis("Horizontal") * rotateTorque * Vector3.up); RaycastHit hit; Ray downRay = new Ray(transform.position, -Vector3.up); if (Physics.Raycast(downRay, out hit)) { float hoverError = hoverHeight - hit.distance; if (hoverError > 0) { float upwardSpeed = rb.velocity.y; float lift = hoverError * hoverForce - upwardSpeed * hoverDamp; rb.AddForce(lift * Vector3.up); } } } }