mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-05 22:09:56 +03:00
Fix incorrect uses of a/an
This commit is contained in:
@@ -275,7 +275,7 @@ data directory. This is usually a good approach, but this means configuration fi
|
||||
will not carry across machines if you copy the folder containing the Godot executable.
|
||||
See :ref:`doc_data_paths` for more information.
|
||||
|
||||
If *true* portable operation is desired (e.g. for use on an USB stick),
|
||||
If *true* portable operation is desired (e.g. for use on a USB stick),
|
||||
follow the steps in :ref:`doc_data_paths_self_contained_mode`.
|
||||
|
||||
Why does Godot prioritize Vulkan and OpenGL over Direct3D?
|
||||
@@ -287,10 +287,10 @@ available on (nearly) all platforms. Thanks to this design decision, a project
|
||||
developed with Godot on Windows will run out of the box on Linux, macOS, and
|
||||
more.
|
||||
|
||||
While Vulkan and OpenGL remain our primary focus for their open standard and
|
||||
cross-platform benefits, Godot 4.3 introduced experimental support for Direct3D 12.
|
||||
This addition aims to enhance performance and compatibility on platforms where
|
||||
Direct3D 12 is prevalent, such as Windows and Xbox. However, Vulkan and OpenGL
|
||||
While Vulkan and OpenGL remain our primary focus for their open standard and
|
||||
cross-platform benefits, Godot 4.3 introduced experimental support for Direct3D 12.
|
||||
This addition aims to enhance performance and compatibility on platforms where
|
||||
Direct3D 12 is prevalent, such as Windows and Xbox. However, Vulkan and OpenGL
|
||||
will continue as the default rendering backends on all platforms, including Windows.
|
||||
|
||||
Why does Godot aim to keep its core feature set small?
|
||||
|
||||
@@ -69,7 +69,7 @@ Desktop or laptop PC - Minimum
|
||||
|
||||
Vulkan drivers for these Windows versions are known to have issues with
|
||||
memory leaks. As a result, it's recommended to stick to the Compatibility
|
||||
rendering method when running Godot on an Windows version older than 10.
|
||||
rendering method when running Godot on a Windows version older than 10.
|
||||
|
||||
Mobile device (smartphone/tablet) - Minimum
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -252,7 +252,7 @@ Desktop or laptop PC - Minimum
|
||||
|
||||
Vulkan drivers for these Windows versions are known to have issues with
|
||||
memory leaks. As a result, it's recommended to stick to the Compatibility
|
||||
rendering method when running Godot on an Windows version older than 10.
|
||||
rendering method when running Godot on a Windows version older than 10.
|
||||
|
||||
Mobile device (smartphone/tablet) - Minimum
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
@@ -397,7 +397,7 @@ For the folders accelerated by this option, multiple ``.cpp`` files are
|
||||
compiled in each translation unit, so headers can be shared between multiple
|
||||
files, which can dramatically decrease build times.
|
||||
|
||||
To make a SCU build, use the ``scu_build=yes`` SCons option.
|
||||
To peform an SCU build, use the ``scu_build=yes`` SCons option.
|
||||
|
||||
.. note:: When developing a Pull Request using SCU builds, be sure to make a
|
||||
regular build prior to submitting the PR. This is because SCU builds
|
||||
|
||||
@@ -109,7 +109,7 @@ These files should contain the following:
|
||||
// Nothing to do here in this example.
|
||||
}
|
||||
|
||||
Next, you need to create a ``SCsub`` file so the build system compiles
|
||||
Next, you need to create an ``SCsub`` file so the build system compiles
|
||||
this module:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -148,7 +148,7 @@ These files should contain the following:
|
||||
// Nothing to do here in this example.
|
||||
}
|
||||
|
||||
Next, we need to create a ``SCsub`` file so the build system compiles
|
||||
Next, we need to create an ``SCsub`` file so the build system compiles
|
||||
this module:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
@@ -72,7 +72,7 @@ pass.
|
||||
|
||||
The first important change in the mobile renderer is that the mobile renderer
|
||||
does not use the RGBA16F texture formats that the desktop renderer does.
|
||||
Instead, it is using a R10G10B10A2 UNORM texture format. This halves the bandwidth
|
||||
Instead, it is using an R10G10B10A2 UNORM texture format. This halves the bandwidth
|
||||
required and has further improvements as mobile hardware often further optimizes
|
||||
for 32-bit formats. The tradeoff is that the mobile renderer has limited HDR
|
||||
capabilities due to the reduced precision and maximum values in the color data.
|
||||
@@ -421,7 +421,7 @@ begins. Godot's 2D drawing methods such as the Line2D node or some CanvasItem
|
||||
strips and vertex colors, which don't require MSAA to work.
|
||||
|
||||
A 2D signed distance field representing LightOccluder2D nodes in the viewport is
|
||||
automatically generated if an user shader requests it. This can be used for
|
||||
automatically generated if a user shader requests it. This can be used for
|
||||
various effects in custom shaders, such as 2D global illumination. It is also
|
||||
used to calculate particle collisions in 2D.
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ macros which allow to log test output in a format written by doctest.
|
||||
+----------------+-----------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Different reporters can be chosen at run-time. For instance, here's how the
|
||||
output can be redirected to a XML file:
|
||||
output can be redirected to an XML file:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ If the file has no resources, ``load_steps`` is omitted. The engine will
|
||||
still load the file correctly if ``load_steps`` is incorrect, but this will affect
|
||||
loading bars and any other piece of code relying on that value.
|
||||
|
||||
``uid`` is an unique string-based identifier representing the scene. This is
|
||||
``uid`` is a unique string-based identifier representing the scene. This is
|
||||
used by the engine to track files that are moved around, even while the editor
|
||||
is closed. Scripts can also load UID-based resources using the ``uid://`` path
|
||||
prefix to avoid relying on filesystem paths. This makes it possible to move
|
||||
@@ -279,8 +279,8 @@ External resources
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
External resources are links to resources not contained within the TSCN file
|
||||
itself. An external resource consists of a path, a type, an UID (used to map its
|
||||
filesystem location to an unique identifier) and an ID (used to refer to the
|
||||
itself. An external resource consists of a path, a type, a UID (used to map its
|
||||
filesystem location to a unique identifier) and an ID (used to refer to the
|
||||
resource in the scene file).
|
||||
|
||||
Godot always generates absolute paths relative to the resource directory and
|
||||
|
||||
@@ -78,7 +78,7 @@ Setting up
|
||||
----------
|
||||
|
||||
First of all, before the lightmapper can do anything, the objects to be baked need
|
||||
an UV2 layer and a texture size. An UV2 layer is a set of secondary texture coordinates
|
||||
a UV2 layer and a texture size. A UV2 layer is a set of secondary texture coordinates
|
||||
that ensures any face in the object has its own place in the UV map. Faces must
|
||||
not share pixels in the texture.
|
||||
|
||||
|
||||
@@ -359,7 +359,7 @@ others will require a conversion step beforehand. `HandBrake <https://handbrake.
|
||||
(GUI) and `FFmpeg <https://ffmpeg.org/>`__ (CLI) are popular open source tools
|
||||
for this purpose. FFmpeg has a steeper learning curve, but it's more powerful.
|
||||
|
||||
The command below converts an AVI video to a MP4 (H.264) video with a Constant
|
||||
The command below converts an AVI video to an MP4 (H.264) video with a Constant
|
||||
Rate Factor (CRF) of 15. This results in a relatively large file, but is
|
||||
well-suited for platforms that will re-encode your videos to reduce their size
|
||||
(such as most video sharing websites):
|
||||
|
||||
@@ -185,7 +185,7 @@ of disk space.
|
||||
(GUI) and `FFmpeg <https://ffmpeg.org/>`__ (CLI) are popular open source tools
|
||||
for this purpose. FFmpeg has a steeper learning curve, but it's more powerful.
|
||||
|
||||
Here are example FFmpeg commands to convert a MP4 video to Ogg Theora. Since
|
||||
Here are example FFmpeg commands to convert an MP4 video to Ogg Theora. Since
|
||||
FFmpeg supports a lot of input formats, you should be able to use the commands
|
||||
below with almost any input video format (AVI, MOV, WebM, …).
|
||||
|
||||
@@ -297,13 +297,13 @@ To implement the chroma key effect, follow these steps:
|
||||
COLOR = vec4(color.rgb, fade_factor);
|
||||
}
|
||||
|
||||
The shader uses the distance calculation to identify pixels close to the chroma key color and discards them,
|
||||
effectively removing the selected color. Pixels that are slightly further away from the chroma key color are
|
||||
faded based on the fade_factor, blending them smoothly with the surrounding colors.
|
||||
This process creates the desired chroma key effect, making it appear as if the background has been replaced with
|
||||
The shader uses the distance calculation to identify pixels close to the chroma key color and discards them,
|
||||
effectively removing the selected color. Pixels that are slightly further away from the chroma key color are
|
||||
faded based on the fade_factor, blending them smoothly with the surrounding colors.
|
||||
This process creates the desired chroma key effect, making it appear as if the background has been replaced with
|
||||
another image or video.
|
||||
|
||||
The code above represents a simple demonstration of the Chroma Key shader,
|
||||
The code above represents a simple demonstration of the Chroma Key shader,
|
||||
and users can customize it according to their specific requirements.
|
||||
|
||||
UI Controls
|
||||
@@ -338,11 +338,11 @@ also make sure that the range of the sliders are appropriate, our settings are :
|
||||
Signal Handling
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Connect the appropriate signal from the UI elements to the `Control` node's script.
|
||||
you created in the `Control` node's script to control the chroma key effect.
|
||||
These signal handlers will update the shader's uniform variables
|
||||
Connect the appropriate signal from the UI elements to the `Control` node's script.
|
||||
you created in the `Control` node's script to control the chroma key effect.
|
||||
These signal handlers will update the shader's uniform variables
|
||||
in response to user input.
|
||||
|
||||
Save and run the scene to see the chroma key effect in action! With the provided UI controls,
|
||||
you can now adjust the chroma key color, pickup range, and fade amount in real-time, achieving the desired
|
||||
Save and run the scene to see the chroma key effect in action! With the provided UI controls,
|
||||
you can now adjust the chroma key color, pickup range, and fade amount in real-time, achieving the desired
|
||||
chroma key functionality for your video content.
|
||||
|
||||
@@ -64,6 +64,6 @@ file when the ``escn`` file opens in Godot.
|
||||
|
||||
.. image:: img/external_mat_option.jpg
|
||||
|
||||
``.material`` file can be assigned to any material slot to be a external resource.
|
||||
``.material`` file can be assigned to any material slot to be an external resource.
|
||||
|
||||
.. image:: img/gd_dot_material.jpg
|
||||
|
||||
@@ -225,7 +225,7 @@ These options are only visible if some of the above options are enabled:
|
||||
use cases.
|
||||
- **Occluder > Simplification Distance:** Only visible if **Generate >
|
||||
Occluder** is set to **Mesh + Occluder** or **Occluder Only**. Higher values
|
||||
result in a occluder mesh with fewer vertices (resulting in decreased CPU
|
||||
result in an occluder mesh with fewer vertices (resulting in decreased CPU
|
||||
utilization), at the cost of more occlusion culling issues (such as false
|
||||
positives or false negatives). If you run into objects disappearing when they
|
||||
shouldn't when the camera is near a certain mesh, try decreasing this value.
|
||||
|
||||
@@ -17,7 +17,7 @@ Each format has different advantages:
|
||||
smaller file size, but require significantly more processing power to
|
||||
play back.
|
||||
- MP3 files use better compression than WAV with IMA-ADPCM, but worse than
|
||||
Ogg Vorbis. This means that a MP3 file with roughly equal quality to
|
||||
Ogg Vorbis. This means that an MP3 file with roughly equal quality to
|
||||
Ogg Vorbis will be significantly larger. On the bright side, MP3 requires
|
||||
less CPU usage to play back compared to Ogg Vorbis.
|
||||
|
||||
@@ -71,13 +71,13 @@ the FileSystem dock:
|
||||
|
||||
Import options in the Import dock after selecting a WAV file in the FileSystem dock
|
||||
|
||||
The set of options available after selecting a Ogg Vorbis or MP3 file is different:
|
||||
The set of options available after selecting an Ogg Vorbis or MP3 file is different:
|
||||
|
||||
.. figure:: img/importing_audio_samples_import_options_mp3.webp
|
||||
:align: center
|
||||
:alt: Import options in the Import dock after selecting a MP3 file in the FileSystem dock
|
||||
:alt: Import options in the Import dock after selecting an MP3 file in the FileSystem dock
|
||||
|
||||
Import options in the Import dock after selecting a MP3 file in the
|
||||
Import options in the Import dock after selecting an MP3 file in the
|
||||
FileSystem dock. Options are identical for Ogg Vorbis files.
|
||||
|
||||
After importing a sound, you can play it back using the AudioStreamPlayer,
|
||||
@@ -246,9 +246,9 @@ If you double-click an Ogg Vorbis or MP3 file in the FileSystem dock (or choose
|
||||
|
||||
.. figure:: img/importing_audio_samples_advanced_import_settings.webp
|
||||
:align: center
|
||||
:alt: Advanced dialog when double-clicking a Ogg Vorbis or MP3 file in the FileSystem dock
|
||||
:alt: Advanced dialog when double-clicking an Ogg Vorbis or MP3 file in the FileSystem dock
|
||||
|
||||
Advanced dialog when double-clicking a Ogg Vorbis or MP3 file in the FileSystem dock
|
||||
Advanced dialog when double-clicking an Ogg Vorbis or MP3 file in the FileSystem dock
|
||||
|
||||
This dialog allows you to edit the audio's loop point with a real-time preview,
|
||||
in addition to the :abbr:`BPM (Beats Per Minute)`, beat count and bar beats.
|
||||
|
||||
@@ -526,7 +526,7 @@ editing the original text afterwards:
|
||||
- Select your text object in Inkscape, then duplicate it in place by pressing
|
||||
:kbd:`Ctrl + D` and use **Path > Object to Path**. Hide the original text
|
||||
object afterwards using the **Layers and Objects** dock.
|
||||
- Use the Inkscape command line to export a SVG from another SVG file with text
|
||||
- Use the Inkscape command line to export an SVG from another SVG file with text
|
||||
converted to paths:
|
||||
|
||||
::
|
||||
|
||||
@@ -4,7 +4,7 @@ Using the Android editor
|
||||
========================
|
||||
|
||||
In 2023, `we added <https://godotengine.org/article/android_godot_editor_play_store_beta_release/>`__
|
||||
a `Android port of the editor <https://godotengine.org/download/android/>`__
|
||||
an `Android port of the editor <https://godotengine.org/download/android/>`__
|
||||
that can be used to work on new or existing projects on Android devices.
|
||||
|
||||
.. note::
|
||||
@@ -45,7 +45,7 @@ Here are the known limitations and issues of the Android editor:
|
||||
- UX not optimized for Android phones form-factor
|
||||
- `Android Go devices <https://developer.android.com/guide/topics/androidgo>`__ lacks
|
||||
the *All files access* permission required for device read/write access.
|
||||
As a workaround, when using a Android Go device, it's recommended to create new projects only in the Android *Documents* or *Downloads* directories.
|
||||
As a workaround, when using an Android Go device, it's recommended to create new projects only in the Android *Documents* or *Downloads* directories.
|
||||
- The editor doesn't properly resume when *Don't keep activities* is enabled in the *Developer Options*
|
||||
|
||||
.. seealso::
|
||||
|
||||
@@ -82,7 +82,8 @@ If you do not have an Apple Developer ID Certificate
|
||||
- Select ``Built-in (ad-hoc only)`` in the ``Code Signing > Codesign`` option.
|
||||
- Select ``Disabled`` in the ``Notarization > Notarization`` option.
|
||||
|
||||
In this case Godot will use a ad-hoc signature, which will make running an exported app easier for the end users, see the :ref:`Running Godot apps on macOS <doc_running_on_macos>` page for more information.
|
||||
In this case Godot will use an ad-hoc signature, which will make running an exported app easier for the end users,
|
||||
see the :ref:`Running Godot apps on macOS <doc_running_on_macos>` page for more information.
|
||||
|
||||
Signing Options
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -155,7 +155,7 @@ Web > Use TLS**.
|
||||
and bypass the warning by clicking **Advanced** and then **Proceed to
|
||||
(address)**.
|
||||
|
||||
If you have a SSL/TLS certificate that is trusted by browsers, you can specify
|
||||
If you have an SSL/TLS certificate that is trusted by browsers, you can specify
|
||||
the paths to the key and certificate files in the **Export > Web > TLS Key**
|
||||
and **Export > Web > TLS Certificate**. This will only work if the project
|
||||
is accessed through a domain name that is part of the TLS certificate.
|
||||
|
||||
@@ -207,7 +207,7 @@ it can be worth it to use binary (compiled) MO message files instead of text-bas
|
||||
PO files. Binary MO files are smaller and faster to read than the equivalent
|
||||
PO files.
|
||||
|
||||
You can generate a MO file with the command below:
|
||||
You can generate an MO file with the command below:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
@@ -218,7 +218,7 @@ the PO file. This MO file can then be loaded in Godot as described above.
|
||||
|
||||
The original PO file should be kept in version control so you can update
|
||||
your translation in the future. In case you lose the original PO file and
|
||||
wish to decompile a MO file into a text-based PO file, you can do so with:
|
||||
wish to decompile an MO file into a text-based PO file, you can do so with:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ received input, in order:
|
||||
6. If so far no one consumed the event, the :ref:`Node._unhandled_key_input() <class_Node_private_method__unhandled_key_input>` callback
|
||||
will be called if overridden (and not disabled with
|
||||
:ref:`Node.set_process_unhandled_key_input() <class_Node_method_set_process_unhandled_key_input>`).
|
||||
This happens only if the event is a :ref:`InputEventKey <class_InputEventKey>`.
|
||||
This happens only if the event is an :ref:`InputEventKey <class_InputEventKey>`.
|
||||
If any function consumes the event, it can call :ref:`Viewport.set_input_as_handled() <class_Viewport_method_set_input_as_handled>`, and the
|
||||
event will not spread any more. The unhandled key input callback is ideal for key events.
|
||||
7. If so far no one consumed the event, the :ref:`Node._unhandled_input() <class_Node_private_method__unhandled_input>` callback
|
||||
|
||||
@@ -42,7 +42,7 @@ Example
|
||||
-------
|
||||
|
||||
This example demonstrates how to load a scene in the background.
|
||||
We will have a button spawn a enemy when pressed.
|
||||
We will have a button spawn an enemy when pressed.
|
||||
The enemy will be ``Enemy.tscn`` which we will load on ``_ready`` and instantiate when pressed.
|
||||
The path will be ``"Enemy.tscn"`` which is located at ``res://Enemy.tscn``.
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ Image's :ref:`Image.load_from_file <class_Image_method_load_from_file>` static m
|
||||
handles everything, from format detection based on file extension to reading the
|
||||
file from disk.
|
||||
|
||||
If you need error handling or more control (such as changing the scale a SVG is
|
||||
If you need error handling or more control (such as changing the scale an SVG is
|
||||
loaded at), use one of the following methods depending on the file format:
|
||||
|
||||
- :ref:`Image.load_jpg_from_buffer <class_Image_method_load_jpg_from_buffer>`
|
||||
|
||||
@@ -14,7 +14,7 @@ Godot provides the following objects and classes for 2D navigation:
|
||||
The AStar2D class is best suited for cell-based 2D gameplay that does not require actors to reach any possible position within an area but only predefined, distinct positions.
|
||||
|
||||
- :ref:`NavigationServer2D<class_NavigationServer2D>`
|
||||
``NavigationServer2D`` provides a powerful server API to find the shortest path between two positions on a area defined by a navigation mesh.
|
||||
``NavigationServer2D`` provides a powerful server API to find the shortest path between two positions on an area defined by a navigation mesh.
|
||||
|
||||
The NavigationServer is best suited for 2D realtime gameplay that does require actors to reach any possible position within a navigation mesh defined area.
|
||||
Mesh-based navigation scales well with large game worlds as a large area can often be defined with a single polygon when it would require many, many grid cells.
|
||||
|
||||
@@ -90,7 +90,7 @@ residential connections use a `NAT
|
||||
high-level multiplayer API only uses UDP, so you must forward the port in UDP,
|
||||
not just TCP.
|
||||
|
||||
After forwarding an UDP port and making sure your server uses that port, you can
|
||||
After forwarding a UDP port and making sure your server uses that port, you can
|
||||
use `this website <https://icanhazip.com/>`__ to find your public IP address.
|
||||
Then give this public IP address to any Internet clients that wish to connect to
|
||||
your server.
|
||||
@@ -196,7 +196,7 @@ For a remote call to be successful, the sending and receiving node need to have
|
||||
must have the same name. When using ``add_child()`` for nodes which are expected to use RPCs, set the argument
|
||||
``force_readable_name`` to ``true``.
|
||||
|
||||
.. warning::
|
||||
.. warning::
|
||||
|
||||
If a function is annotated with ``@rpc`` on the client script (resp. server script),
|
||||
then this function must also be declared on the server script (resp. client script).
|
||||
|
||||
@@ -51,7 +51,7 @@ Preparing the scene
|
||||
-------------------
|
||||
|
||||
Create a new empty scene, add a root :ref:`Node <class_Node>` and add a script to it.
|
||||
Then add a :ref:`HTTPRequest <class_HTTPRequest>` node as a child.
|
||||
Then add an :ref:`HTTPRequest <class_HTTPRequest>` node as a child.
|
||||
|
||||
.. image:: img/rest_api_scene.webp
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Open the ``PlaneMesh`` properties and set the size(x: 0.5 y: 1) then set ``Subdi
|
||||
|
||||
Add a :ref:`BoneAttachment3D <class_BoneAttachment3D>` node under the skeleton node and select the Neck bone to attach the cloak to the character skeleton.
|
||||
|
||||
.. note:: ``BoneAttachment3D`` node is to attach objects to a bone of a armature. The attached object will follow the bone's movement, weapon of a character can be attached this way.
|
||||
.. note:: ``BoneAttachment3D`` node is to attach objects to a bone of an armature. The attached object will follow the bone's movement, weapon of a character can be attached this way.
|
||||
|
||||
.. image:: img/softbody_cloak_bone_attach.png
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ Query available items
|
||||
*********************
|
||||
|
||||
Once the API has connected, query SKUs using ``querySkuDetails()``. You must successfully complete
|
||||
a SKU query before calling the ``purchase()`` or ``queryPurchases()`` functions,
|
||||
an SKU query before calling the ``purchase()`` or ``queryPurchases()`` functions,
|
||||
or they will return an error. ``querySkuDetails()`` takes two parameters: an array
|
||||
of SKU name strings, and a string specifying the type of SKU being queried.
|
||||
The SKU type string should be ``"inapp"`` for normal in-app purchases or ``"subs"`` for subscriptions.
|
||||
|
||||
@@ -84,7 +84,7 @@ To configure the stretch base size at runtime from a script, use the
|
||||
``get_tree().root.content_scale_size`` property (see
|
||||
:ref:`Window.content_scale_size <class_Window_property_content_scale_size>`).
|
||||
Changing this value can indirectly change the size of 2D elements. However, to
|
||||
provide an user-accessible scaling option, using
|
||||
provide a user-accessible scaling option, using
|
||||
:ref:`doc_multiple_resolutions_stretch_scale` is recommended as it's easier to
|
||||
adjust.
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ may be useful when the type of Variant is completely unknown. However, when poss
|
||||
specific conversions. ``Variant.Obj`` evaluates a ``switch`` on ``Variant.VariantType`` and it may
|
||||
not be necessary. Also, if the result is a value type, it is boxed.
|
||||
|
||||
For example, if the potential for ``Variant.As<MyNode>()`` to throw a invalid cast exception isn't
|
||||
For example, if the potential for ``Variant.As<MyNode>()`` to throw an invalid cast exception isn't
|
||||
acceptable, consider using a ``Variant.As<GodotObject>() is MyNode n`` type pattern instead.
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -118,7 +118,7 @@ access and integrity.
|
||||
access.
|
||||
|
||||
There are also cases where one may wish to have many scenes present at the same
|
||||
time. Perhaps one is adding their own singleton at runtime, or preserving a
|
||||
time. Perhaps one is adding their own singleton at runtime, or preserving
|
||||
a scene's data between scene changes (adding the scene to the root node).
|
||||
|
||||
.. tabs::
|
||||
|
||||
@@ -9,7 +9,7 @@ An expression can be:
|
||||
|
||||
- A mathematical expression such as ``(2 + 4) * 16/4.0``.
|
||||
- A built-in method call like ``deg_to_rad(90)``.
|
||||
- A method call on an user-provided script like ``update_health()``,
|
||||
- A method call on a user-provided script like ``update_health()``,
|
||||
if ``base_instance`` is set to a value other than ``null`` when calling
|
||||
:ref:`Expression.execute() <class_Expression_method_execute>`.
|
||||
|
||||
|
||||
@@ -118,6 +118,6 @@ not compatible with Godot 3.x.
|
||||
|
||||
GDExtension add-ons are also only compatible with engine builds that use the
|
||||
level of floating-point precision the extension was compiled for. This means
|
||||
that if you use a engine build with double-precision floats, the extension must
|
||||
that if you use an engine build with double-precision floats, the extension must
|
||||
also be compiled for double-precision floats. See
|
||||
:ref:`doc_large_world_coordinates` for details.
|
||||
|
||||
@@ -47,7 +47,7 @@ you.
|
||||
.. warning::
|
||||
|
||||
If the filter mode is not changed to a filter mode that contains ``mipmap`` in its name,
|
||||
``textureLod`` with a LOD parameter greater than ``0.0`` will have the same appearance
|
||||
``textureLod`` with an LOD parameter greater than ``0.0`` will have the same appearance
|
||||
as with the ``0.0`` LOD parameter.
|
||||
|
||||
Screen texture example
|
||||
|
||||
@@ -65,7 +65,7 @@ Global built-ins are available everywhere, including custom functions.
|
||||
| in float **TAU** | A ``TAU`` constant (``6.283185``). |
|
||||
| | An equivalent of ``PI * 2`` and amount of radians in full turn. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
| in float **E** | A ``E`` constant (``2.718281``). |
|
||||
| in float **E** | An ``E`` constant (``2.718281``). |
|
||||
| | Euler's number and a base of the natural logarithm. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
|
||||
@@ -214,7 +214,7 @@ words, Godot no longer draws the object again for each light.
|
||||
Use render_mode ``unshaded`` if you do not want the light processor function to
|
||||
run. Use render_mode ``light_only`` if you only want to see the impact of
|
||||
lighting on an object; this can be useful when you only want the object visible
|
||||
where it is covered by light.
|
||||
where it is covered by light.
|
||||
|
||||
If you define a light function it will replace the built in light function,
|
||||
even if your light function is empty.
|
||||
@@ -289,7 +289,7 @@ documentation for more information.
|
||||
+-----------------------------------------------+-------------------------------------------+
|
||||
| vec2 **texture_sdf_normal** (vec2 sdf_pos) | Calculates a normal from the SDF texture. |
|
||||
+-----------------------------------------------+-------------------------------------------+
|
||||
| vec2 **sdf_to_screen_uv** (vec2 sdf_pos) | Converts a SDF to screen UV. |
|
||||
| vec2 **sdf_to_screen_uv** (vec2 sdf_pos) | Converts an SDF to screen UV. |
|
||||
+-----------------------------------------------+-------------------------------------------+
|
||||
| vec2 **screen_uv_to_sdf** (vec2 uv) | Converts screen UV to a SDF. |
|
||||
| vec2 **screen_uv_to_sdf** (vec2 uv) | Converts screen UV to an SDF. |
|
||||
+-----------------------------------------------+-------------------------------------------+
|
||||
|
||||
@@ -16,13 +16,13 @@ camera.
|
||||
Fog shaders are a special form of compute shader that is called once for
|
||||
every froxel that is touched by an axis aligned bounding box of the associated
|
||||
:ref:`FogVolume <class_FogVolume>`. This means that froxels that just barely
|
||||
touch a given :ref:`FogVolume <class_FogVolume>` will still be used.
|
||||
touch a given :ref:`FogVolume <class_FogVolume>` will still be used.
|
||||
|
||||
Built-ins
|
||||
^^^^^^^^^
|
||||
|
||||
Values marked as "in" are read-only. Values marked as "out" are for optional
|
||||
writing and will not necessarily contain sensible values. Samplers cannot be
|
||||
writing and will not necessarily contain sensible values. Samplers cannot be
|
||||
written to so they are not marked.
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ Global built-ins are available everywhere, including in custom functions.
|
||||
| in float **TAU** | A ``TAU`` constant (``6.283185``). |
|
||||
| | An equivalent of ``PI * 2`` and amount of radians in full turn. |
|
||||
+---------------------------------+-----------------------------------------------------------------------------------------+
|
||||
| in float **E** | A ``E`` constant (``2.718281``). |
|
||||
| in float **E** | An ``E`` constant (``2.718281``). |
|
||||
| | Euler's number and a base of the natural logarithm. |
|
||||
+---------------------------------+-----------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
@@ -66,13 +66,13 @@ Global built-ins are available everywhere, including custom functions.
|
||||
| in float **TAU** | A ``TAU`` constant (``6.283185``). |
|
||||
| | An equivalent of ``PI * 2`` and amount of radians in full turn. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
| in float **E** | A ``E`` constant (``2.718281``). Euler's number and a base of the natural logarithm. |
|
||||
| in float **E** | An ``E`` constant (``2.718281``). Euler's number and a base of the natural logarithm. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
|
||||
Start and Process built-ins
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
These properties can be accessed from both the ``start()`` and ``process()`` functions.
|
||||
These properties can be accessed from both the ``start()`` and ``process()`` functions.
|
||||
|
||||
+------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Function | Description |
|
||||
|
||||
@@ -183,7 +183,7 @@ There are 4 ``LIGHTX`` lights, accessed as ``LIGHT0``, ``LIGHT1``, ``LIGHT2``, a
|
||||
| in float **TAU** | A ``TAU`` constant (``6.283185``). |
|
||||
| | An equivalent of ``PI * 2`` and amount of radians in full turn. |
|
||||
+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
| in float **E** | A ``E`` constant (``2.718281``). |
|
||||
| in float **E** | An ``E`` constant (``2.718281``). |
|
||||
| | Euler's number and a base of the natural logarithm. |
|
||||
+---------------------------------+--------------------------------------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ Global built-ins are available everywhere, including custom functions.
|
||||
| in float **TAU** | A ``TAU`` constant (``6.283185``). |
|
||||
| | An equivalent of ``PI * 2`` and amount of radians in full turn. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
| in float **E** | A ``E`` constant (``2.718281``). Euler's number and a base of the natural logarithm. |
|
||||
| in float **E** | An ``E`` constant (``2.718281``). Euler's number and a base of the natural logarithm. |
|
||||
+-------------------+----------------------------------------------------------------------------------------+
|
||||
|
||||
Vertex built-ins
|
||||
|
||||
@@ -74,7 +74,7 @@ Box Containers
|
||||
|
||||
Arranges child controls vertically or horizontally (via :ref:`HBoxContainer <class_HBoxContainer>` and
|
||||
:ref:`VBoxContainer <class_VBoxContainer>`). In the opposite of the designated direction
|
||||
(as in, vertical for an horizontal container), it just expands the children.
|
||||
(as in, vertical for a horizontal container), it just expands the children.
|
||||
|
||||
.. image:: img/containers_box.png
|
||||
|
||||
@@ -162,15 +162,15 @@ As in the example above, one of the most common ways to use this container is to
|
||||
AspectRatioContainer
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
A container type that arranges its child controls in a way that preserves their proportions
|
||||
A container type that arranges its child controls in a way that preserves their proportions
|
||||
automatically when the container is resized.
|
||||
(via :ref:`AspectRatioContainer <class_AspectRatioContainer>`).
|
||||
It has multiple stretch modes, providing options for adjusting the child controls' sizes concerning the container:
|
||||
It has multiple stretch modes, providing options for adjusting the child controls' sizes concerning the container:
|
||||
"fill," "width control height," "height control width," and "cover."
|
||||
|
||||
.. image:: img/containers_aspectratio.webp
|
||||
|
||||
useful when you have a container that needs to be dynamic and responsive to different screen sizes,
|
||||
useful when you have a container that needs to be dynamic and responsive to different screen sizes,
|
||||
and you want the child elements to scale proportionally without losing their intended shapes.
|
||||
|
||||
.. image:: img/containers_aspectratio_drag.webp
|
||||
@@ -178,9 +178,9 @@ and you want the child elements to scale proportionally without losing their int
|
||||
FlowContainer
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
FlowContainer is a container that arranges its child controls either horizontally or vertically,
|
||||
FlowContainer is a container that arranges its child controls either horizontally or vertically,
|
||||
(via :ref:`HFlowContainer <class_HFlowContainer>` and via :ref:`VFlowContainer <class_VFlowContainer>`).
|
||||
and when the available space runs out, it wraps the children to the next line or column, similar to how text wraps in a book.
|
||||
and when the available space runs out, it wraps the children to the next line or column, similar to how text wraps in a book.
|
||||
|
||||
|
||||
.. image:: img/containers_hflow.webp
|
||||
@@ -192,7 +192,7 @@ useful for creating flexible layouts where the child controls adjust automatical
|
||||
CenterContainer
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
CenterContainer is a container that automatically keeps all of its child controls centered within it at their minimum size.
|
||||
CenterContainer is a container that automatically keeps all of its child controls centered within it at their minimum size.
|
||||
It ensures that the child controls are always aligned to the center, making it easier to create centered layouts without manual positioning.
|
||||
(via :ref:`CenterContainer <class_CenterContainer>`).
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ edited in the Inspector dock instead.
|
||||
.. figure:: img/theme_item_inspector.png
|
||||
:align: center
|
||||
|
||||
Styleboxes have an unique feature available, where you can pin an individual
|
||||
Styleboxes have a unique feature available, where you can pin an individual
|
||||
stylebox from the list. Pinned stylebox acts like the leader of the pack, and
|
||||
all styleboxes of the same type are updated alongside it when you change its
|
||||
properties. This allows you to edit properties of several styleboxes at the
|
||||
|
||||
@@ -22,7 +22,7 @@ This node is moved by processing traditional controller, mouse or keyboard input
|
||||
A camera is attached to this node at a location roughly where the player's head will be.
|
||||
|
||||
Applying this model to the XR setup, we add an :ref:`XROrigin3D <class_xrorigin3d>` node as a child of the character body,
|
||||
and add a :ref:`XRCamera3D <class_xrcamera3d>` as a child of the origin node. At face value this seems to work.
|
||||
and add an :ref:`XRCamera3D <class_xrcamera3d>` as a child of the origin node. At face value this seems to work.
|
||||
However, upon closer examination this model does not take into account that there are two forms of movement in XR.
|
||||
The movement through controller input, and the physical movement of the player in the real world.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user