Game Development Reference
In-Depth Information
Agent visibility
Implementing agent visibility begins with casting a number of raycasts into the sandbox to
see whether the agent can visibly detect another agent without objects blocking our agent's
sight. To cast a ray, the only requirements are a starting and ending point within the sand-
box. The results of the raycast are returned as a Lua table that contains a result attribute in-
dicating whether anything was hit; it also contains an optional object attribute of the sand-
box object that the ray intersected with, if the raycast successfully intersected with an ob-
ject.
Note
When casting rays, take care about selecting a starting position that isn't already intersect-
ing with an object, otherwise the results returned might not be the expected outcome.
To case a ray we'll use the RayCastToObject function provided by the sandbox.
local raycastResult = Sandbox.RayCastToObject(
sandbox, startPoint, endPoint);
In the following screenshot, you can see various rays that represent agent visibility pat-
terns:
Search WWH ::




Custom Search