查看“LlSetCameraParams”的源代码
←
LlSetCameraParams
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} {{函数详情 |函数名 = Function: llSetCameraParams( list rules ); |参数= 参数:• list rules – Format is [ rule1, data1, rule2, data2 . . . rulen, datan ] |返回值= 返回值:一次设置多个相机参数。 要运行这个函数,脚本必须使用[[llRequestPermissions]]请求[[PERMISSION_CONTROL_CAMERA]]权限。 |注意事项= 摄像头控制目前(服务器1.38)只支持附件和你坐的对象。否则将导致在[[DEBUG_CHANNEL]]上显示错误。 如果代理最后使用的控件是脚本化的摄像机控件,则脚本化的摄像机参数将不会为代理设置。手动相机控制也会覆盖设置的参数。 '''Permission''' 不要依赖于权限的自动授予状态。始终使用[[run_time_permissions]]事件。 如果脚本缺少权限[[PERMISSION_CONTROL_CAMERA]],该脚本将在[[DEBUG_CHANNEL]]上大叫一个错误,操作失败(但脚本继续运行)。 当化身从对象上站起或分离对象时,[[PERMISSION_CONTROL_CAMERA]]权限将自动撤销,并且任何脚本化的摄像机参数将自动清除。 |示例= 你可以在区域相对坐标中设置摄像机,也可以让摄像机跟随你的化身。 '''Region relative coordinates, an example:''' <pre> lookAtMe( integer perms ) { if ( perms & PERMISSION_CONTROL_CAMERA ) { vector camPos = llGetPos() + (relCamP * llGetRot() * turnOnChair) ; vector camFocus = llGetPos() ; llClearCameraParams(); // 将摄像头设置为默认 llSetCameraParams([ CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive CAMERA_FOCUS, camFocus, // 地区的相对位置 CAMERA_FOCUS_LOCKED, TRUE, // (TRUE or FALSE) CAMERA_POSITION, camPos, // 地区的相对位置 CAMERA_POSITION_LOCKED, TRUE // (TRUE or FALSE) ]); } } </pre> 注意焦点和位置都是锁定的。第一个例子使相机从camPos看camFocus。 '''Camera follow avatar, an example:''' <pre> lookAtMe( integer perms ) { if ( perms & PERMISSION_CONTROL_CAMERA ) { llClearCameraParams(); // reset camera to default llSetCameraParams([ CAMERA_ACTIVE, 1, // 1 is active, 0 is inactive CAMERA_BEHINDNESS_ANGLE, 30.0, // (0 to 180) degrees CAMERA_BEHINDNESS_LAG, 0.0, // (0 to 3) seconds CAMERA_DISTANCE, 10.0, // ( 0.5 to 10) meters //CAMERA_FOCUS, <0,0,5>, // region relative position CAMERA_FOCUS_LAG, 0.05 , // (0 to 3) seconds CAMERA_FOCUS_LOCKED, FALSE, // (TRUE or FALSE) CAMERA_FOCUS_THRESHOLD, 0.0, // (0 to 4) meters CAMERA_PITCH, 10.0, // (-45 to 80) degrees //CAMERA_POSITION, <0,0,0>, // region relative position CAMERA_POSITION_LAG, 0.0, // (0 to 3) seconds CAMERA_POSITION_LOCKED, FALSE, // (TRUE or FALSE) CAMERA_POSITION_THRESHOLD, 0.0, // (0 to 4) meters CAMERA_FOCUS_OFFSET, <2.0, 0.0, 0.0> // <-10,-10,-10> to <10,10,10> meters ]); } } </pre> 请注意,在第二个例子中,焦点和位置没有锁定,甚至没有设置。这是适合让相机跟随车辆上的飞行员。 |相关函数= [[llGetPermissions]] - 获得已授予的权限 [[llGetPermissionsKey]] - 获取授予权限的代理 [[llRequestPermissions]] - 请求的权限 [[llClearCameraParams]] [[llGetCameraPos]] [[llGetCameraRot]] |相关事件= [[run_time_permissions]] - 允许接收事件 }} 附录:(表格) {| class="wikitable" border="1" |- ! ! ! |- | | | |- | | | |}
该页面使用的模板:
模板:LSL Header
(
查看源代码
)
模板:LSLC
(
查看源代码
)
模板:LSLGC
(
查看源代码
)
模板:Multi-lang
(
查看源代码
)
模板:函数详情
(
查看源代码
)
返回至
LlSetCameraParams
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
网站首页
知识百科
编辑帮助
最近更改
工具
链入页面
相关更改
特殊页面
页面信息