LlRotTarget
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials | 
| 函数名 | 
|---|
| Function: integer llRotTarget( rotation rot, float error ); | 
| 参数: • rotation rot - 目标旋转 • float error - 以弧度表示的角度,定义了腐烂发生的时间 | 
| 返回值:这个函数是为了让脚本知道它何时到达了一个旋转。 它注册了一个带有错误的rot,该错误将连续触发at_rot_target和not_at_rot_target事件,直到未注册为止。 返回一个handle(一个整数)来用llRotTargetRemove取消目标注册 
 这个函数不旋转对象,使用llSetRot, llRotLookAt或llLookAt来完成。 | 
| 注意事项 | 
|---|
| 无 | 
| 示例 | 
|---|
| 示例1 vector standrot = <0.0, 0.0, 0.0>;
vector fliprot = <45.0, 0.0, 0.0>;
 
/ Hypatia Callisto简单的双态rot目标检测和旋转工作,用于检测旋转目标。由于at_rot_target, not_at_rot_target, llRotTarget, llRotTargetRemove
 
integer rottarget;
 
default
{
 
    state_entry(){ 
        rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1);
        llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(standrot*DEG_TO_RAD)]); // 旋转到起始点
    }
 
    not_at_rot_target()
    { 
        llRotTargetRemove( rottarget );
        llOwnerSay("not there"); //没有目标
    }
 
    touch_start (integer total_number)
    {
        state rotatestate; // 为新位置更改状态
    }
}
 
 
state rotatestate 
{ 
    state_entry(){ 
        rottarget = llRotTarget(llEuler2Rot(fliprot*DEG_TO_RAD), 0.1);
        llSetPrimitiveParams ([PRIM_ROTATION, llEuler2Rot(fliprot*DEG_TO_RAD)]); // 转到新点
    }
 
    at_rot_target(integer tnum, rotation targetrot, rotation ourrot)
    { 
        llRotTargetRemove( rottarget );
        llOwnerSay("there"); //达到了目标
    }
 
    touch_start(integer touched){ 
        state default; 
    }
 
}
 | 
| 相关函数 | 
|---|
| llRotTargetRemove - 取消目标旋转 llTarget - 登记目标位置 llTargetRemove - 取消目标位置 | 
| 相关事件 | 
|---|
| • at_rot_target not_at_rot_target – 旋转目标事件 • at_target not_at_target – 目标位置事件 | 
