Saltar a contenido

Raycast Result

Tipo: Dato
Categoría: RAYCAST

Lee el resultado almacenado por un nodo Raycast, General Raycast o Mouse Pick con el mismo Ray ID. Ambos nodos deben estar en el mismo objeto.

Propiedades

Propiedad Tipo Por defecto Descripción
Ray ID String "ray1" Debe coincidir con el nodo de raycast
Result Enum Hit Name Qué dato devolver (ver tabla)

Opciones de Result

Valor Tipo devuelto Descripción
Hit Name String Nombre del objeto impactado (vacío si no hay impacto)
Hit (bool) Bool True si hubo impacto
Hit Pos X/Y/Z Float Coordenada X, Y o Z del punto de impacto
Normal X/Y/Z Float Componente X, Y o Z de la normal de la superficie
Distance Float Distancia desde el origen del rayo al punto de impacto

Sockets

Socket Dirección Tipo
Value Salida Dato (tipo según Result)

Código generado

# Result = Hit Name
(getattr(self, '_rc_ray1_hit', None).name if getattr(self, '_rc_ray1_hit', None) else '')

# Result = Hit (bool)
(getattr(self, '_rc_ray1_hit', None) is not None)

# Result = Hit Pos X
(getattr(self, '_rc_ray1_pos', [0.0, 0.0, 0.0])[0])

# Result = Distance
((lambda _hp: ((_hp[0]-self.own.worldPosition.x)**2 + ...)**0.5
  if getattr(self, '_rc_ray1_hit', None) else 0.0)
 (getattr(self, '_rc_ray1_pos', [0.0, 0.0, 0.0])))

Uso típico

Mostrar nombre del objeto apuntado

[On Update]
    → [Raycast: Direction=Forward, Distance=5.0, Ray ID="aim"]
          └── Hit  ──► [Set Text: Text={Raycast Result: Ray ID="aim", Result=Hit Name}]
          └── Miss ──► [Set Text: Text=""]

Spawnear partículas en el punto de impacto

[On Key Press: Key=SPACE, Mode=PRESSED]
    → [Raycast: Direction=Forward, Distance=20.0, Ray ID="shot"]
          └── Hit  ──► [Add Object:
                           Object="spark_particle"
                           X={Raycast Result: Ray ID="shot", Result=Hit Pos X}
                           Y={Raycast Result: Ray ID="shot", Result=Hit Pos Y}
                           Z={Raycast Result: Ray ID="shot", Result=Hit Pos Z}]
          └── Miss ──► [...]

Notas

  • Este nodo NO ejecuta ningún raycast — solo lee lo que almacenó el nodo ejecutor.
  • El raycast debe ejecutarse en el mismo frame para que el resultado esté actualizado.
  • Si el raycast nunca se ejecutó, Hit (bool) devuelve False y las posiciones devuelven [0,0,0].