level 1
研究了一下午 弄不出来。
在脚本里写var pos = global_position
在_process(delta): 下 print(pos)
结果就是一次(0,0)
如果把var pos = global_position 写在_process(delta): 下
结果就是持续性的实时坐标
求问怎样才能获取一个怪物场景的初始入场坐标。 并且能在_process(delta): 下调用?
2023年03月15日 08点03分
1
level 1
而且很奇怪
在脚本上面 非函数区域 var pos = global_position
pos的结果怎么会是(0,0)
难道脚本按照从上到下运行,运行到这句的时候,怪物其实还没有入场?
2023年03月15日 08点03分
2
不是还有个_ready()函数吗,这个就是初始化场景用的。定义的属性变量在脚本初始化开始赋值,而不是场景加入到场景树,要想在_ready生命周期里赋值,就可以在声明变量时加上onready,这样就会在_ready之后,第一次_process之前赋值
2023年03月15日 10点03分
是的,这种一般要加关键词 onready
2023年03月15日 10点03分
level 1
终于下班了 看了看各位的回答,发现我对godot真的完全不了解。
昨天实在弄不出来 就想了个笨办法。
在非函数区域 先 var pos = null 建了个空变量
var JS = 0 建了个计数器
然后在_process(delta):下
if JS == 0:
pos = global_position
JS +=1
解决的。
先谢谢各位,现在就去试试楼上各位的办法。
其实我连 关键词onready和内置方法_ready()都不知道。。。刚用没几天,自己瞎摸索
2023年03月16日 12点03分
8
level 1
经试验,直接在var pos=global_position 前面 加上 onready就行。。
或者 var pos = null
然后
func _ready():
pos = global_position
这样也行。。。
感谢楼上各位大佬。
2023年03月16日 12点03分
9