Engine

Inherits: Object

进入引擎属性。

描述

Engine单例使您可以查询和修改项目的运行时参数,例如每秒帧数,时间范围等。

属性

bool

editor_hint

true

int

iterations_per_second

60

float

physics_jitter_fix

0.5

bool

print_error_messages

true

int

target_fps

0

float

time_scale

1.0

方法

Dictionary

get_author_info ( ) const

Array

get_copyright_info ( ) const

Dictionary

get_donor_info ( ) const

int

get_frames_drawn ( )

float

get_frames_per_second ( ) const

int

get_idle_frames ( ) const

Dictionary

get_license_info ( ) const

String

get_license_text ( ) const

MainLoop

get_main_loop ( ) const

int

get_physics_frames ( ) const

float

get_physics_interpolation_fraction ( ) const

Object

get_singleton ( String name ) const

Dictionary

get_version_info ( ) const

bool

has_singleton ( String name ) const

bool

is_in_physics_frame ( ) const

属性说明

Default

true

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:

  1. if Engine.editor_hint:
  2. draw_gizmos()
  3. else:
  4. 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

60

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

0.5

Setter

set_physics_jitter_fix(value)

Getter

get_physics_jitter_fix()

控制物理时钟与实时同步程度。如果是0或更少,时钟是同步的。这样的值建议用于网络游戏,因为时钟的同步性很重要。较高的值会导致游戏中的时钟和真实时钟之间的偏差较大,但可以平滑帧速率的抖动。默认值0.5对大多数人来说应该是良好的;超过2的值可能导致游戏对掉帧的反应有明显的延迟,因此不推荐使用。

注意:为了获得最佳效果,当使用自定义物理插值这种解决方案时,应通过将physics_jitter_fix设置为0来禁用物理抖动修复。


  • bool print_error_messages

Default

true

Setter

set_print_error_messages(value)

Getter

is_printing_error_messages()

如果false,停止打印错误和警告信息到控制台和编辑器输出日志。这可以用来在单元测试套件运行期间隐藏错误和警告信息。这个属性等同于ProjectSettings.application/run/disable_stderr项目设置。

警告: 如果你在项目的任意位置将其设置为false,重要的错误信息可能会被隐藏,即使它们是由其他脚本触发。如果在@tool脚本中把这个设置为false,这也会影响到编辑器本身。在确保错误信息被启用之前,报告错误(默认情况下)。

注意:当从编辑器运行一个项目时,这个属性不影响编辑器的错误选项卡。


  • int target_fps

Default

0

Setter

set_target_fps(value)

Getter

get_target_fps()

所需的每秒帧数。如果硬件无法跟上,则可能不遵守此设置。值为0表示没有限制。


Default

1.0

Setter

set_time_scale(value)

Getter

get_time_scale()

控制游戏中的时钟与现实生活中的时钟的快慢。默认值为1.0。值为2.0意味着游戏的移动速度是现实生活的两倍,而值为0.5意味着游戏的移动速度是常规速度的一半。

方法说明

返回一个字典中的引擎作者信息。

lead_developers - 字符串的数组,主要开发者的名字

founders - 创始人姓名的字符串数组

project_managers - 项目经理姓名的字符串数组

developers - 开发者名称的字符串数组


  • Array get_copyright_info ( ) const

返回一个版权信息字典数组。

name - 字符串,组件名称。

partic - 描述组件子部分的字典数组 {files, copyright, license}


返回捐赠者姓名数组的字典。

{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_drawnget_physics_frames

get_idle_frames可以用来减少运行高消耗逻辑的次数,而不需要依靠Timer

  1. func _process(_delta):
  2. if Engine.get_idle_frames() % 2 == 0:
  3. pass # Run expensive logic only once every 2 idle (render) frames here.

返回Godot使用的Dictionary 字典列表,其中包括第三方组件。


  • String get_license_text ( ) const

返回Godot许可证文本。


返回主循环对象(请参阅MainLoopSceneTree)。


  • int get_physics_frames ( ) const

返回自引擎初始化以来通过的总帧数,该帧数在每个物理帧上进行。参阅get_idle_frames

get_physics_frames可以用来减少运行高消耗逻辑的次数,而不需要依靠Timer

  1. func _physics_process(_delta):
  2. if Engine.get_physics_frames() % 2 == 0:
  3. pass # Run expensive logic only once every 2 physics frames here.

  • float get_physics_interpolation_fraction ( ) const

返回渲染框架时当前物理滴标记中的分数。这可用于实现固定的时间步插值。


返回具有给定name的全局单例。通常用于插件,例如Android上的GodotPayment


在字典中返回当前的引擎版本信息。

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,打印出来会给你它的十进制表示法,意义不是特别大。使用十六进制的字数,方便从代码中进行版本比较。

  1. if Engine.get_version_info().hex >= 0x030200:
  2. # Do things specific to version 3.2 or later
  3. else:
  4. # Do things specific to versions before 3.2

如果全局范围内存在具有给定name的单例,则返回true


  • bool is_in_physics_frame ( ) const

如果游戏在游戏循环的固定过程和物理阶段内,返回 true