您的位置:首页 > 运维架构

CoppeliaSim 脚本(2)Script execution order

2020-03-06 16:20 786 查看

本文为官方文档翻译,仅供个人参考,如有侵权,联系删除

2.Script execution order

脚本不是以随机方式执行的:脚本类型,脚本位置和脚本设置会影响脚本什么时候执行(相对于其他脚本)。要记住的一个简单规则是:脚本越重要或存在时间越长,调用/执行越后。
执行顺序首先基于脚本类型。我们有以下顺序,从第一次执行到最后执行:
启动/恢复线程子脚本(可通过sim.setThreadResumeLocation调整顺序)
非线程子脚本调用
自定义脚本调用
附加脚本调用
沙盒脚本调用

因为子脚本是仿真脚本,所以它们仅在模拟运行时才运行(即它们不是持久性的)。自定义脚本,附加脚本和沙箱脚本不是这种情况,它们在仿真停止后也会运行。此外,切换到其他场景时,附加脚本和沙箱脚本也将继续运行。上面的顺序很有意义,因为可以将重要的脚本设计为依赖不太重要的脚本生成的数据并对其进行操作。
例如,将按以下顺序调用回调sysCall_sensing:首先在子脚本中,然后在自定义脚本中,在附加脚本中,最后在沙箱脚本中。
在脚本类型中,执行顺序取决于脚本在场景层次结构中的位置及其以下两个脚本设置:
执行优先级: 指定脚本的执行优先级。执行优先级仅与相同类型的脚本有关,并且仅与场景层次结构中的同级脚本有关。

树遍历:指定何时执行脚本(相对于场景层次结构中最下方附加的脚本(其后代脚本))。 如果使用反向,则先执行后代脚本,使用正向,则最后执行后代脚本。树遍历仅与相同类型的脚本有关。 默认为反向。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
qq_29696095 发布了5 篇原创文章 · 获赞 0 · 访问量 539 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: