32 lines
746 B
GDScript
32 lines
746 B
GDScript
extends Button
|
||
|
||
|
||
func _ready():
|
||
self.connect("pressed", self, "onButton")
|
||
|
||
|
||
# yield(obj, signal),函数立即返回,并且保存当前执行的位置和状态
|
||
# yield返回GDScriptFunctionState类型对象,类似于Java的CompleteFuture
|
||
# resume恢复GDScriptFunctionState保存的调用函数状态
|
||
func onButton():
|
||
var yieldResult1 = doSomething1()
|
||
yieldResult1.resume()
|
||
|
||
var yieldResult2 = doSomething2()
|
||
# 等待yieldResult2执行完毕
|
||
yield(yieldResult2, "completed")
|
||
print("end")
|
||
|
||
|
||
func doSomething1():
|
||
yield()
|
||
print("doSomething")
|
||
|
||
func doSomething2():
|
||
print(1)
|
||
yield(get_tree().create_timer(1), "timeout")
|
||
print(2)
|
||
yield(get_tree().create_timer(1), "timeout")
|
||
print(3)
|
||
yield(get_tree().create_timer(1), "timeout")
|