LlWanderWithin

来自人工智能助力教育知识百科
Wzc讨论 | 贡献2020年7月13日 (一) 07:42的版本
跳转至: 导航搜索

Template:Needs Translation/


函数名
Function: llWanderWithin( vector origin, vector dist, list options );
参数:将角色设置为在指定半径内围绕中心点漫游。

•矢量原点(vector origin)-可漫游的中心点

•vector dist–设置角色沿与世界对齐的轴偏离原点的距离

•列表选项(list options )–漫游标志及其参数

返回值:无
注意事项
必须使用llCreateCharacter,否则脚本无法编译。

漫游区域是基于指定原点的粗糙区域,在每个轴上按指定比例缩放。因此,如果指定<20,10,2>m,则对象将沿世界x轴在20 m范围内移动,沿世界y轴移动10 m,沿世界z轴移动2 m。

当WANDER_PAUSE_AT_WAYPOINTS启用时,当接近每个航路点时,将触发PU_GOAL_REACHED和PU_Lucking_DISTANCE_REACHED path_更新事件。当此标志被禁用时,到达航路点时不会触发上述路径更新事件。

通过引入障碍物(如墙),可以将漫游区域限制在较小的区域内。

为任何矢量指定的垂直位置应尽可能接近所需地形的实际高度。提供的垂直位置与实际地形/物体之间的较大差异将导致行为失败。

对于所有的寻路行为,不要依赖于这里的详细实现。漂移距离只是一个粗略的估计。我们可能会一时兴起改变确切的形状。为了好玩。或者因为这样看起来更好。或者确保您不依赖于详细的实现。别让这成为另一个PATHBUG-69。

示例
示例1
default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_MAX_SPEED, 25, CHARACTER_DESIRED_SPEED, 15.0]);
        //MAX_SPEED is @ 20 by default
    }
 
    touch_start(integer total_number)
    {
        llWanderWithin(llGetPos(), <10.0, 10.0, 5.0>, [WANDER_PAUSE_AT_WAYPOINTS, TRUE]);
    }
}
相关函数
llCreateCharacter

llDeleteCharacter

llEvade

llExecCharacterCmd

llGetClosestNavPoint

llFleeFrom

llNavigateTo

llPatrolPoints

llPursue

llUpdateCharacter

llWanderWithin

相关事件
path_update

附录:(表格)

Option V Parameters Default

!Description

WANDER_PAUSE_AT_WAYPOINTS 0 [integer boolean] [ FALSE ] Whether the character should pause after reaching each wander waypoint.