关于Blender Python中的模式运算符

问题描述 投票:-1回答:1

我想制作一个使用模式运算符的程序,以在Blender的Python中每0.01秒继续打印(“测试”)。

我也想在按Esc键时退出。

我该怎么办?

我编写并执行了以下代码,但是Blender冻结了。使用模态运算符似乎可以避免冻结,但是我不确定如何使用它。

import time
import threading

#A function that keeps executing print ("test")
def worker():
    while True:
        print("test")

def schedule(interval, f, wait=True):
    base_time = time.time()
    next_time = 0
    while True:
        t = threading.Thread(target=f)
        t.start()
        if wait:
            t.join()
        next_time = ((base_time - time.time()) % interval) or interval
        time.sleep(next_time)

#Execute worker function every 0.01 second
schedule(0.01, worker, False)
python blender
1个回答
0
投票

在Blenders文本编辑器中,您会找到一个名为operator_modal_timer.py的python模板,该模板可以按照您想要的方式工作。

对操作员的第一个调用是operator_modal_timer.py方法,您可以在其中使用execute()创建计时器。然后,在wm.event_timer_add方法中,您响应计时器事件,或者在收到wm.event_timer_add键事件时取消运算符。

如果将运算符放在modal()中,则每次启动搅拌器时都可以启用它。

© www.soinside.com 2019 - 2024. All rights reserved.