mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-04 14:11:02 +03:00
singletons_autoload.rst: add C# example similar to "Global Variable"
This commit is contained in:
@@ -94,6 +94,33 @@ be accessed directly in GDScript, without requiring ``get_node()``:
|
||||
|
||||
PlayerVariables.health -= 10
|
||||
|
||||
The **Enable** column has no effect in C# code. However, if the singleton is a
|
||||
C# script, a similar effect can be achieved by including a static property
|
||||
called ``Instance`` and assigning it in ``_Ready()``:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: csharp
|
||||
|
||||
public partial class PlayerVariables : Node
|
||||
{
|
||||
public static PlayerVariables Instance { get; private set; }
|
||||
|
||||
public int Health { get; set; }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
Instance = this;
|
||||
}
|
||||
}
|
||||
|
||||
This allows the singleton to be accessed from C# code without ``GetNode()`` and
|
||||
without a typecast:
|
||||
|
||||
.. tabs::
|
||||
.. code-tab:: csharp
|
||||
|
||||
PlayerVariables.Instance.Health -= 10;
|
||||
|
||||
Note that autoload objects (scripts and/or scenes) are accessed just like any
|
||||
other node in the scene tree. In fact, if you look at the running scene tree,
|
||||
you'll see the autoloaded nodes appear:
|
||||
|
||||
Reference in New Issue
Block a user