“LlSetLinkPrimitiveParamsFast”的版本间的差异
(创建页面,内容为“{{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} '''提示''': llSetPrimitiveParams, llSetLinkPrimitiveParams, llSetLinkPrimitivePara…”) |
(没有差异)
|
2020年8月26日 (三) 04:28的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
提示: llSetPrimitiveParams, llSetLinkPrimitiveParams, llSetLinkPrimitiveParamsFast这些函数几乎完全相同。对于几乎所有的情况,我们建议您使用llSetLinkPrimitiveParamsFast。在wiki中三个函数被总结在了一起难以翻译,若您想查阅更完整的函数,参见[1]
| 函数名 |
|---|
| Function: llSetLinkPrimitiveParamsFast( integer link, list rules ); |
| 参数:• integer link – Link number (0: unlinked, 1: root prim, >1: child prims and seated avatars) or a LINK_* flag
• list rules |
| 返回值:根据规则设置prims参数。
与上面的变体相比,这个函数比其他LSL函数要快。 |
| 注意事项 |
|---|
有时候llSetLinkPrimitiveParamsFast太快了,也就是说,函数返回后,下一行代码在更新处理完成前执行并返回,导致更新出现混乱。在大多数情况下,行为上没有区别,但有时会有。在这些情况下,您需要使用llSetPrimitiveParams或llSetLinkPrimitiveParams。
这是因为llSetLinkPrimitiveParamsFast有效负载是异步执行的,而llSetPrimitiveParams和llSetLinkPrimitiveParams有效负载是同步执行的(或者延迟使其看起来是同步的)。 |
| 示例 |
|---|
这是一个简单的脚本,当触碰链接集中的一个prim时,它会亮起这个prim,当脚本安装在链接集中的根prim中时,它会用llSetLinkPrimitiveParams亮起其他的prim。
// Turn all prims off and the one touched turn on
default
{
touch_start(integer num_detected)
{
llSetLinkPrimitiveParamsFast(LINK_SET, [
PRIM_FULLBRIGHT, ALL_SIDES, FALSE,
PRIM_LINK_TARGET, llDetectedLinkNumber(0),
PRIM_FULLBRIGHT, ALL_SIDES, TRUE]);
}
}
一个简单的脚本,当被触碰时,它将所有的子prim在根轴Z轴上向前移动0.25 m。 default
{
touch_start(integer total_number)
{
integer numberOfPrims = llGetNumberOfPrims();
if (numberOfPrims < 2) return;
vector link_pos;
list params;
integer link = 2;// start with first child prim
do
{
// 获取子prim的局部位置(即相对于根prim)
link_pos = llList2Vector(llGetLinkPrimitiveParams(link, [PRIM_POS_LOCAL]), 0);
link_pos.z += 0.25;// relative to root's local z-axis !!!
params += [PRIM_LINK_TARGET, link,
PRIM_POS_LOCAL, link_pos];
}
while (++link <= numberOfPrims);
if (!llGetListLength(params)) return;
// params列表以PRIM_LINK_TARGET开始(这是我们可以开始的一个技巧)
因此,在这个函数调用中,将哪个数字作为第一个参数实际上并不重要
llSetLinkPrimitiveParamsFast(2, params);
}
}
|
| 相关函数 |
|---|
| llGetLinkNumber - 返回脚本所在的prim的链接号。
llGetLinkNumberOfSides - 返回链接的prim的面数。 llGetPrimitiveParams - 获得许多基本参数 llSetLinkPrimitiveParams - 在linkset中设置其他prim的参数 llGetLinkPrimitiveParams - 在likset中获取其他prim的许多基本参数 llSetLinkPrimitiveParamsFast - 在linkset中设置其他prims的参数 llSetAlpha - 简单的方法来设置alpha(透明度)而不需要(重新)设置颜色。 llSetTexture - 设置纹理的简单方法 llSetColor - 设置颜色的简单方法 llSetScale - 设置比例的简单方法 llSetStatus - 设置物理和幻影的方法更简单 |
| 相关事件 |
|---|
| 无 |