Engine
Inherits: Object
进入引擎属性。
描述
Engine
单例使您可以查询和修改项目的运行时参数,例如每秒帧数,时间范围等。
属性
| ||
| ||
| ||
| ||
| ||
|
方法
get_author_info ( ) const | |
get_copyright_info ( ) const | |
get_donor_info ( ) const | |
get_frames_drawn ( ) | |
get_frames_per_second ( ) const | |
get_idle_frames ( ) const | |
get_license_info ( ) const | |
get_license_text ( ) const | |
get_main_loop ( ) const | |
get_physics_frames ( ) const | |
get_physics_interpolation_fraction ( ) const | |
get_singleton ( String name ) const | |
get_version_info ( ) const | |
has_singleton ( String name ) const | |
is_in_physics_frame ( ) const |
属性说明
- bool editor_hint
Default |
|
Setter | set_editor_hint(value) |
Getter | is_editor_hint() |
If true
, the script is currently running inside the editor. This is useful for tool
scripts to conditionally draw editor helpers, or prevent accidentally running “game” code that would affect the scene state while in the editor:
if Engine.editor_hint:
draw_gizmos()
else:
simulate_physics()
See Running code in the editor in the documentation for more information.
Note: To detect whether the script is run from an editor build (e.g. when pressing F5
), use OS.has_feature with the "editor"
argument instead. OS.has_feature("editor")
will evaluate to true
both when the code is running in the editor and when running the project from the editor, but it will evaluate to false
when the code is run from an exported project.
- int iterations_per_second
Default |
|
Setter | set_iterations_per_second(value) |
Getter | get_iterations_per_second() |
The number of fixed iterations per second. This controls how often physics simulation and Node._physics_process methods are run. This value should generally always be set to 60
or above, as Godot doesn’t interpolate the physics step. As a result, values lower than 60
will look stuttery. This value can be increased to make input more reactive or work around collision tunneling issues, but keep in mind doing so will increase CPU usage. See also target_fps and ProjectSettings.physics/common/physics_fps.
Note: Only 8 physics ticks may be simulated per rendered frame at most. If more than 8 physics ticks have to be simulated per rendered frame to keep up with rendering, the game will appear to slow down (even if delta
is used consistently in physics calculations). Therefore, it is recommended not to increase iterations_per_second above 240. Otherwise, the game will slow down when the rendering framerate goes below 30 FPS.
- float physics_jitter_fix
Default |
|
Setter | set_physics_jitter_fix(value) |
Getter | get_physics_jitter_fix() |
控制物理时钟与实时同步程度。如果是0或更少,时钟是同步的。这样的值建议用于网络游戏,因为时钟的同步性很重要。较高的值会导致游戏中的时钟和真实时钟之间的偏差较大,但可以平滑帧速率的抖动。默认值0.5对大多数人来说应该是良好的;超过2的值可能导致游戏对掉帧的反应有明显的延迟,因此不推荐使用。
注意:为了获得最佳效果,当使用自定义物理插值这种解决方案时,应通过将physics_jitter_fix设置为0
来禁用物理抖动修复。
- bool print_error_messages
Default |
|
Setter | set_print_error_messages(value) |
Getter | is_printing_error_messages() |
如果false
,停止打印错误和警告信息到控制台和编辑器输出日志。这可以用来在单元测试套件运行期间隐藏错误和警告信息。这个属性等同于ProjectSettings.application/run/disable_stderr项目设置。
警告: 如果你在项目的任意位置将其设置为false
,重要的错误信息可能会被隐藏,即使它们是由其他脚本触发。如果在@tool
脚本中把这个设置为false
,这也会影响到编辑器本身。在确保错误信息被启用之前,不报告错误(默认情况下)。
注意:当从编辑器运行一个项目时,这个属性不影响编辑器的错误选项卡。
- int target_fps
Default |
|
Setter | set_target_fps(value) |
Getter | get_target_fps() |
所需的每秒帧数。如果硬件无法跟上,则可能不遵守此设置。值为0表示没有限制。
- float time_scale
Default |
|
Setter | set_time_scale(value) |
Getter | get_time_scale() |
控制游戏中的时钟与现实生活中的时钟的快慢。默认值为1.0。值为2.0意味着游戏的移动速度是现实生活的两倍,而值为0.5意味着游戏的移动速度是常规速度的一半。
方法说明
- Dictionary get_author_info ( ) const
返回一个字典中的引擎作者信息。
lead_developers
- 字符串的数组,主要开发者的名字
founders
- 创始人姓名的字符串数组
project_managers
- 项目经理姓名的字符串数组
developers
- 开发者名称的字符串数组
- Array get_copyright_info ( ) const
返回一个版权信息字典数组。
name
- 字符串,组件名称。
partic
- 描述组件子部分的字典数组 {files
, copyright
, license
}
- Dictionary get_donor_info ( ) const
返回捐赠者姓名数组的字典。
{platinum_sponsors
, gold_sponsors
, silver_sponsors
, bronze_sponsors
, mini_sponsors
, gold_donors
, silver_donors
, bronze_donors
}
- int get_frames_drawn ( )
返回绘制的总帧数。在精简平台上,或者如果通过命令行使用 --disable-render-loop
禁用渲染循环,get_frames_drawn 总是返回 0
。参阅get_idle_frames。
- float get_frames_per_second ( ) const
返回运行游戏的每秒帧数。
- int get_idle_frames ( ) const
返回自引擎初始化以来的总帧数,在每个空闲帧都会进行,无论渲染循环是否被启用。参阅get_frames_drawn和get_physics_frames。
get_idle_frames可以用来减少运行高消耗逻辑的次数,而不需要依靠Timer。
func _process(_delta):
if Engine.get_idle_frames() % 2 == 0:
pass # Run expensive logic only once every 2 idle (render) frames here.
- Dictionary get_license_info ( ) const
返回Godot使用的Dictionary 字典列表,其中包括第三方组件。
- String get_license_text ( ) const
返回Godot许可证文本。
- MainLoop get_main_loop ( ) const
返回主循环对象(请参阅MainLoop和SceneTree)。
- int get_physics_frames ( ) const
返回自引擎初始化以来通过的总帧数,该帧数在每个物理帧上进行。参阅get_idle_frames。
get_physics_frames可以用来减少运行高消耗逻辑的次数,而不需要依靠Timer。
func _physics_process(_delta):
if Engine.get_physics_frames() % 2 == 0:
pass # Run expensive logic only once every 2 physics frames here.
- float get_physics_interpolation_fraction ( ) const
返回渲染框架时当前物理滴标记中的分数。这可用于实现固定的时间步插值。
返回具有给定name
的全局单例。通常用于插件,例如Android上的GodotPayment
。
- Dictionary get_version_info ( ) const
在字典中返回当前的引擎版本信息。
major
- 将主要版本号作为一个int来保存。
minor
- 将小版本号作为一个int保存。
patch
- 将补丁版本号作为一个int来保存。
hex
- 保存以十六进制int编码的完整版本号,每个数字一个字节(2位)(见下例)
status
- 以字符串形式保存状态 (例如 “beta”, “rc1”, “rc2”, … “stable”)
build
- 将build名称(例如 “custom_build”)作为一个字符串保存。
hash
- 以字符串形式保存完整的 Git 提交哈希值。
year
- 将版本发布的年份作为一个int值来保存。
string
- major
+ minor
+ patch
+ status
+ build
在一个字符串中。
十六进制
值的编码如下,从左到右:一个字节代表主要版本,一个字节代表次要版本,一个字节代表补丁版本。例如,”3.1.12 “就是0x03010C
。注意:内部还是一个int,打印出来会给你它的十进制表示法,意义不是特别大。使用十六进制的字数,方便从代码中进行版本比较。
if Engine.get_version_info().hex >= 0x030200:
# Do things specific to version 3.2 or later
else:
# Do things specific to versions before 3.2
如果全局范围内存在具有给定name
的单例,则返回true
。
- bool is_in_physics_frame ( ) const
如果游戏在游戏循环的固定过程和物理阶段内,返回 true
。