Godot备忘
资料
- Godot
- Godot Engine
- Godot 文档
- Godobuf, protobuf序列化插件
安装
# Windows
scoop install godot
记录
关于类型
get_class
返回的是基类的类型名,而不是本类class
或者class_name
声明的.
Object.get_class
● String get_class() const
返回对象的类型为一个String。参见is_class()。
注意: get_class() 不考虑class_name的声明。如果对象有一个class_name的定义,基类名称将被返回。
比如如下代码,输出的是Reference
而不是A
extends Control
func _ready():
var a = A.new()
a.test()
class A:
func test():
print(self.get_class())
is_class
Object.is_class
● bool is_class(class: String) const
如果对象从给定的 class 中继承,则返回 true 。另请参阅 get_class()。
注: is_class() 没有考虑 class_name 声明。如果对象有 class_name 定义,is_class() 将为该名称返回 false 。
同理,is_class
可以判断是否某基类继承下来的,但是不能直接判断本类.
比如如下代码,输出的是False True
而不是True True
extends Control
func _ready():
var a = A.new()
a.test()
class A:
func test():
print(self.is_class('A'))
print(self.is_class('Reference'))
get_script
如果需要判断自定义的类型,可以用get_script
Object.get_script
● Reference get_script() const
返回该对象的Script实例,如果没有指定,则返回null。
比如下面的代码,输出A
extends Control
func _ready():
var a = A.new()
match a:
A: print('A')
B: print('B')
_: print('unknown')
class A:
func test():
print(self.is_class('A'))
print(self.is_class('Reference'))
class B:
pass
关于实例化
preload
的结果是PackedScene
类型instance
是PackedScene
的方法instance
之后,要在被add_child
之后才会调用_ready
,所以这之前可以做一些事情,比如设置参数:
var Scene = preload('res://path/to/scene')
var scene = Scene.instance
scene.property1 = value1
scene.property2 = value2
add_child(scene) # _ready在这之后调用
关于定时器
Timer
SceneTreeTimer
问题
与fastgithub
冲突
在开启fastgithub的情况下,素材库的内容是下载不了的:
关闭
fastgithub
可以随缘下载,当然,有靠谱的梯子是最好不过了.