|Kode wheel segment||Sensors|
|Modifiers||objects only / terrain only / from / to / direction / length / draw|
|Pre-made brains that use it||Unknown|
Sensors > raycast hit
This is a sensor tile. The raycast sensor is a thin line that extends from an object’s center socket along its forward facing vector. If that line hits an object or terrain it will register the following information: the distance between the two points, the position of the impact point, and the direction the object is facing. You can specify whether it detects objects or terrain. The line is very thin and very precise and if you experiment with it you will see that getting an object to line up with another to get a “hit” can be tricky. You can change the length of the line, but not the width.
Experiment with the draw modifier in place so you can see the raycast line. This sensor is quite powerful, but tricky to use. Only use it when you need precise sensor detection.
WHEN [raycast hit] [terrain only] [length] DO
…WHEN [duration] DO [turn][left][slowly]
objects only: The raycast sensor will only register a hit on prop objects and characters
terrain only: The raycast sensor will only register a hit with terrain
from: Paired with a socket position or IWP object, the raycast can be altered from the center socket to start somewhere else.
WHEN [raycast hit][from][left foot][position] DO
to: Paired with an IWP object you can draw a raycast line between 2 objects, and only detect the specified object rather than all objects.
direction: By default the raycast will draw from the center socket and along the forward facing vector. Use this modifier to change the direction of the raycast
WHEN [raycast hit][direction][up]
length: Paired with a number you can specify the length of the raycast in meters.
draw: This will draw the raycast line in test and play mode. It is a thin white line that changes to green when it hits something by default.
Display and Create outputs:
did hit object: A boolean variable. True if it hit an object (not terrain)
did hit terrain: A boolean variable. True if hit terrain (not object)
hit distance: A number variable. Gives the distance of the object or terrain that has been hit by raycast. Can be used with create.
hit position: A vector variable. Gives the vector position (3 coordinate numbers) of the raycast hit. Can be used with create.
hit surface normal: A vector variable. Gives the vector position of the “direction of the surface”. Surface normal is the direction a certain point on a surface is pointing to. That tile has to be used under a child line of a raycast WHEN and will be useful to find the direction of a surface like a slope on a terrain, and make that hit surface normal the up direction of a wolf character for example (very useful since he will stop clipping into a hill and actually follow the slope instead of climbing it with rear paws floating in the air). Let’s say a surface is at 30 degrees angle from flat terrain, the surface normal of that point will be at 90 degrees pointing outward from that surface point. 1 Can be used with create.
terrain material index: Experiments with this tile did not reveal how you use it. Can be used with create. EXPLANATION NEEDED
is temporary terrain: A boolean variable. Identifies whether terrain detected by the raycast hit is temporary or not.
See Tutorials What is a Ray cast? by Project Spark