Está en la página 1de 11

1

Mecánica para Simulación


Raycast Hit

Nicolás Flores M.
nicolas.flores@docente.ubo.cl
MEC. SIMUL. [TEO 2]
2

UNIDAD I - Evaluación:
Fecha: Mar 23 de Abril

UNIDAD II - Evaluación:
Fecha: Lun 03 de Junio

UNIDAD III - Evaluación:


Fecha: Mar 09 de Julio
Raycast : Scripting Reference : Declaration 2
3

Devuelve información detallada sobre lo que fue golpeado en la variable tipo RaycastHit ( hitInfo ).

public static bool Physics.Raycast (

Vector3 origin,
Vector3 direction,
out RaycastHit hitInfo,
float maxDistance = Mathf.Infinity,
int layerMask = DefaultRaycastLayers,
QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal
);

Unity Manual Scripting Reference: https://docs.unity3d.com/ScriptReference/Physics.Raycast.html


RaycastHit
4

Struct utilizado para recuperar información de un Raycast.

Algunas Propiedades importantes:

Collider collider El collider que fue golpeado.


float distance La distancia desde el origen del rayo hasta el punto de impacto.
Vector3 point El punto de impacto en el espacio del mundo donde el rayo golpeó al collider.

Unity Manual Scripting Reference: https://docs.unity3d.com/ScriptReference/RaycastHit.html


Pro Tip : Out y Ref
5

Normalmente se envían los datos como entrada, y esto no requiere una palabra clave especial.

Si usa la palabra clave out, la función debe establecer un valor para esa variable, es decir, debe generar
un valor de salida.

En el caso de la variable “out RaycastHit hitInfo” del caso anterior, la variable “hitInfo” será llenada con
datos del choque del rayo con un con collider.

Si usa la palabra clave ref, entonces la función puede tomar un valor en esa ranura y modificarlo a un
nuevo valor.

La diferencia es que out requiere una variable no inicializada y ref toma una variable inicializada.
Raycast Información de detección
6

Generar un Raycast y usar Debug.Log para verificar si


está detectando y mostrar la información de distancia
entre el origen y el punto donde fue detectado el
colider.
Láser de detección
7

Generar un Raycast hacia el frente de un objeto y usar


Debug.DrawRay para mostrar la dirección del rayo, y
ajustar su distancia si está colisionó con un objeto.
Tags and Layers
8

A Través de los tags y layers podemos


generar “grupos” de GameObjects bajo una
etiqueta.

Con los tags podemos generar nuestra


propia clasificaciones que necesitemos.

Y con las layers cómo administramos


funcionaran las interacciones físicas entre
ellos.

Podemos encontrarla en:


Edit > Project Settings > Tags and Layers.

Unity Manual Scripting Reference: https://docs.unity3d.com/Manual/class-TagManager.html


Collision Layers
9

A Través de las capas de colisión, se pueden separar


los Gameobjects en grupos a los cuales podemos
decidir la capacidad de interactuar con otras capas
específicas y otras no.

La matriz de colisión de capas define qué


GameObjects pueden colisionar con qué capas.

Podemos encontrarla en:


Edit > Project Settings > Physics.

Unity Manual Scripting Reference: https://docs.unity3d.com/Manual/LayerBasedCollision.html


Layer Mask
10

Específica capas para usar en un Physics.Raycast.

Un GameObject puede usar hasta 32 LayerMasks


compatibles con el Editor. Las primeras 8 de estas capas
están especificadas por Unity; los siguientes 24 son
controlables por el usuario.

Unity Manual Scripting Reference: https://docs.unity3d.com/ScriptReference/LayerMask.html


QueryTriggerInteraction (Rayos en Triggers)
11

Consideración:

Detecta triggers si se señala que queryTriggerInteraction


es verdadero ,sino dependera de la configuracion global
de fisicas Queries Hit Triggers.

● Collide: Siempre detecta a triggers.


● Ignore: No detectar triggers.
● UseGlobal: Usar la configuración global (Physics).

Unity Manual Scripting Reference: https://docs.unity3d.com/ScriptReference/QueryTriggerInteraction.html

También podría gustarte