Table of Contents

Class Gizmos

Namespace
Cobilas.GodotEngine.Utility
Assembly
com.cobilas.godot.utility.dll

Gizmos are used to give visual debugging or setup aids in the Scene view.

[RunTimeInitializationClass("Gizmos", Priority.StartLater, 0, false)]
public class Gizmos : CanvasLayer, IDisposable
Inheritance
Object
Node
CanvasLayer
Gizmos
Implements
Inherited Members
CanvasLayer.GetLayer()
CanvasLayer.IsVisible()
CanvasLayer.Show()
CanvasLayer.Hide()
CanvasLayer.SetTransform(Transform2D)
CanvasLayer.GetTransform()
CanvasLayer.GetFinalTransform()
CanvasLayer.SetOffset(Vector2)
CanvasLayer.GetOffset()
CanvasLayer.GetRotation()
CanvasLayer.GetRotationDegrees()
CanvasLayer.SetScale(Vector2)
CanvasLayer.GetScale()
CanvasLayer.IsFollowingViewport()
CanvasLayer.GetFollowViewportScale()
CanvasLayer.SetCustomViewport(Node)
CanvasLayer.GetCustomViewport()
CanvasLayer.GetCanvas()
CanvasLayer.Layer
CanvasLayer.Visible
CanvasLayer.Offset
CanvasLayer.RotationDegrees
CanvasLayer.Rotation
CanvasLayer.Scale
CanvasLayer.Transform
CanvasLayer.CustomViewport
CanvasLayer.FollowViewportEnable
CanvasLayer.FollowViewportScale
Node.NotificationEnterTree
Node.NotificationExitTree
Node.NotificationMovedInParent
Node.NotificationReady
Node.NotificationPaused
Node.NotificationUnpaused
Node.NotificationPhysicsProcess
Node.NotificationProcess
Node.NotificationParented
Node.NotificationUnparented
Node.NotificationInstanced
Node.NotificationDragBegin
Node.NotificationDragEnd
Node.NotificationPathChanged
Node.NotificationInternalProcess
Node.NotificationInternalPhysicsProcess
Node.NotificationPostEnterTree
Node.NotificationResetPhysicsInterpolation
Node.NotificationWmMouseEnter
Node.NotificationWmMouseExit
Node.NotificationWmFocusIn
Node.NotificationWmFocusOut
Node.NotificationWmQuitRequest
Node.NotificationWmGoBackRequest
Node.NotificationWmUnfocusRequest
Node.NotificationOsMemoryWarning
Node.NotificationTranslationChanged
Node.NotificationWmAbout
Node.NotificationCrash
Node.NotificationOsImeUpdate
Node.NotificationAppResumed
Node.NotificationAppPaused
Node.GetNode<T>(NodePath)
Node.GetNodeOrNull<T>(NodePath)
Node.GetOwner<T>()
Node.GetOwnerOrNull<T>()
Node.GetParent<T>()
Node.GetParentOrNull<T>()
Node._EnterTree()
Node._ExitTree()
Node._GetConfigurationWarning()
Node._Input(InputEvent)
Node._UnhandledInput(InputEvent)
Node._UnhandledKeyInput(InputEventKey)
Node.GetName()
Node.RemoveChild(Node)
Node.GetChildCount()
Node.GetChildren()
Node.HasNode(NodePath)
Node.GetNode(NodePath)
Node.GetNodeOrNull(NodePath)
Node.GetParent()
Node.HasNodeAndResource(NodePath)
Node.GetNodeAndResource(NodePath)
Node.IsInsideTree()
Node.IsAParentOf(Node)
Node.IsGreaterThan(Node)
Node.GetPath()
Node.GetPathTo(Node)
Node.GetGroups()
Node.Raise()
Node.SetOwner(Node)
Node.GetOwner()
Node.RemoveAndSkip()
Node.GetIndex()
Node.PrintTree()
Node.PrintTreePretty()
Node.GetFilename()
Node.GetPhysicsProcessDeltaTime()
Node.IsPhysicsProcessing()
Node.GetProcessDeltaTime()
Node.GetProcessPriority()
Node.IsProcessing()
Node.IsProcessingInput()
Node.IsProcessingUnhandledInput()
Node.IsProcessingUnhandledKeyInput()
Node.SetPauseMode(Node.PauseModeEnum)
Node.GetPauseMode()
Node.CanProcess()
Node.PrintStrayNodes()
Node.GetPositionInParent()
Node.IsDisplayedFolded()
Node.IsProcessingInternal()
Node.IsPhysicsProcessingInternal()
Node.SetPhysicsInterpolationMode(Node.PhysicsInterpolationModeEnum)
Node.GetPhysicsInterpolationMode()
Node.IsPhysicsInterpolated()
Node.IsPhysicsInterpolatedAndEnabled()
Node.ResetPhysicsInterpolation()
Node.GetTree()
Node.CreateTween()
Node.GetSceneInstanceLoadPlaceholder()
Node.GetViewport()
Node.QueueFree()
Node.RequestReady()
Node.GetNetworkMaster()
Node.IsNetworkMaster()
Node.GetMultiplayer()
Node.GetCustomMultiplayer()
Node.SetCustomMultiplayer(MultiplayerAPI)
Node.IsUniqueNameInOwner()
Node.UpdateConfigurationWarning()
Node.EditorDescription
Node._ImportPath
Node.PauseMode
Node.PhysicsInterpolationMode
Node.Name
Node.UniqueNameInOwner
Node.Filename
Node.Owner
Node.Multiplayer
Node.CustomMultiplayer
Node.ProcessPriority
Object.NotificationPostinitialize
Object.NotificationPredelete
Object.IsInstanceValid(Object)
Object.WeakRef(Object)
Object.Dispose()
Object.ToString()
Object._GetPropertyList()
Object.Free()
Object.GetClass()
Object.GetIndexed(NodePath)
Object.GetPropertyList()
Object.GetMethodList()
Object.GetInstanceId()
Object.SetScript(Reference)
Object.GetScript()
Object.GetMetaList()
Object.GetSignalList()
Object.GetIncomingConnections()
Object.IsBlockingSignals()
Object.PropertyListChangedNotify()
Object.CanTranslateMessages()
Object.IsQueuedForDeletion()
Object.NativeInstance
Object.DynamicObject
Extension Methods

Properties

Color

Sets the Color of the gizmos that are drawn next.

public static Color Color { get; set; }

Property Value

Color

Returns or sets the color of the next gizmo.

Methods

DrawArc(Vector2, float, float, float, int)

Draws a unfilled arc between the given angles. The larger the value of point_count, the smoother the curve. See also DrawCircle(Vector2, float, Color).

Note: Line drawing is not accelerated by batching if antialiased is true.

Note: Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawArc(Vector2 center, float radius, float startAngle, float endAngle, int pointCount)

Parameters

center Vector2

The central position of the arc.

radius float

The radius of the arc.

startAngle float

The angle at which the arc will be drawn.

endAngle float

The angle where the arc will finish being drawn.

pointCount int

The number of stitches used in the arc.

This parameter will define the visual aspect of the bow, whether it will have a smoother or more serrated curve.

DrawArc(Vector2, float, float, float, int, float)

Draws a unfilled arc between the given angles. The larger the value of point_count, the smoother the curve. See also DrawCircle(Vector2, float, Color).

Note: Line drawing is not accelerated by batching if antialiased is true.

Note: Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawArc(Vector2 center, float radius, float startAngle, float endAngle, int pointCount, float width)

Parameters

center Vector2

The central position of the arc.

radius float

The radius of the arc.

startAngle float

The angle at which the arc will be drawn.

endAngle float

The angle where the arc will finish being drawn.

pointCount int

The number of stitches used in the arc.

This parameter will define the visual aspect of the bow, whether it will have a smoother or more serrated curve.

width float

The thickness of the line.

DrawCircle(Vector2, float)

Draws a colored, filled circle. See also DrawArc(Vector2, float, float, float, int, Color, float, bool), DrawPolyline(Vector2[], Color, float, bool) and DrawPolygon(Vector2[], Color[], Vector2[], Texture, Texture, bool).

Note: Built-in antialiasing is not provided for DrawCircle(Vector2, float, Color). As a workaround, install the Antialiased Line2D add-on then create an AntialiasedRegularPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.

public static void DrawCircle(Vector2 position, float radius)

Parameters

position Vector2

The central position of the circle.

radius float

The radius of the circle.

DrawLine(Vector2, Vector2)

Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also DrawMultiline(Vector2[], Color, float, bool) and DrawPolyline(Vector2[], Color, float, bool).

Note: Line drawing is not accelerated by batching if antialiased is true.

Note: Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawLine(Vector2 start, Vector2 end)

Parameters

start Vector2

The beginning of the line.

end Vector2

The end of the line.

DrawLine(Vector2, Vector2, float)

Draws a line from a 2D point to another, with a given color and width. It can be optionally antialiased. See also DrawMultiline(Vector2[], Color, float, bool) and DrawPolyline(Vector2[], Color, float, bool).

Note: Line drawing is not accelerated by batching if antialiased is true.

Note: Due to how it works, built-in antialiasing will not look correct for translucent lines and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawLine(Vector2 start, Vector2 end, float width)

Parameters

start Vector2

The beginning of the line.

end Vector2

The end of the line.

width float

The thickness of the line.

DrawMesh(Mesh, Texture, Texture?, Transform2D?)

Draws a Godot.Mesh in 2D, using the provided texture. See Godot.MeshInstance2D for related documentation.

public static void DrawMesh(Mesh mesh, Texture texture, Texture? normalMap = null, Transform2D? transform = null)

Parameters

mesh Mesh

The mesh that will be used to shape the design.

texture Texture

The texture that will be used to draw on the mesh.

normalMap Texture

The texture normal map.

transform Transform2D?

If the parameter is null, then the default value is Transform2D.Identity

DrawMultiline(Vector2[])

Draws multiple disconnected lines with a uniform color. When drawing large amounts of lines, this is faster than using individual DrawLine(Vector2, Vector2, Color, float, bool) calls. To draw interconnected lines, use DrawPolyline(Vector2[], Color, float, bool) instead.

Note: width and antialiased are currently not implemented and have no effect. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawMultiline(Vector2[] points)

Parameters

points Vector2[]

The points that form the line.

DrawMultiline(Vector2[], float)

Draws multiple disconnected lines with a uniform color. When drawing large amounts of lines, this is faster than using individual DrawLine(Vector2, Vector2, Color, float, bool) calls. To draw interconnected lines, use DrawPolyline(Vector2[], Color, float, bool) instead.

Note: width and antialiased are currently not implemented and have no effect. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawMultiline(Vector2[] points, float width)

Parameters

points Vector2[]

The points that form the line.

width float

The thickness of the line.

DrawMultiline(List<Vector2>)

Draws multiple disconnected lines with a uniform color. When drawing large amounts of lines, this is faster than using individual DrawLine(Vector2, Vector2, Color, float, bool) calls. To draw interconnected lines, use DrawPolyline(Vector2[], Color, float, bool) instead.

Note: width and antialiased are currently not implemented and have no effect. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawMultiline(List<Vector2> points)

Parameters

points List<Vector2>

The points that form the line.

DrawMultiline(List<Vector2>, float)

Draws multiple disconnected lines with a uniform color. When drawing large amounts of lines, this is faster than using individual DrawLine(Vector2, Vector2, Color, float, bool) calls. To draw interconnected lines, use DrawPolyline(Vector2[], Color, float, bool) instead.

Note: width and antialiased are currently not implemented and have no effect. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedLine2D node. That node relies on a texture with custom mipmaps to perform antialiasing. 2D batching is also still supported with those antialiased lines.

public static void DrawMultiline(List<Vector2> points, float width)

Parameters

points List<Vector2>

The points that form the line.

width float

The thickness of the line.

DrawRect(Rect2)

Draws a solid body rectangle.

Note: Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.

public static void DrawRect(Rect2 rect)

Parameters

rect Rect2

The dimensions of the rectangle.

DrawTexture(Texture, Vector2, Texture?)

Draws a texture at a given position.

public static void DrawTexture(Texture texture, Vector2 position, Texture? normalMap = null)

Parameters

texture Texture
position Vector2
normalMap Texture

DrawTextureRect(Texture, Rect2, bool, bool, Texture?)

Draws a textured rectangle at a given position, optionally modulated by a color. If transpose is true, the texture will have its X and Y coordinates swapped.

public static void DrawTextureRect(Texture texture, Rect2 rect, bool tile, bool transpose = false, Texture? normalMap = null)

Parameters

texture Texture
rect Rect2
tile bool
transpose bool
normalMap Texture

DrawWireRect(Rect2)

Draw a rectangle of a skeletonized body.

Note: Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.

public static void DrawWireRect(Rect2 rect)

Parameters

rect Rect2

The dimensions of the rectangle.

DrawWireRect(Rect2, float)

Draw a rectangle of a skeletonized body.

Note: Due to how it works, built-in antialiasing will not look correct for translucent polygons and may not work on certain platforms. As a workaround, install the Antialiased Line2D add-on then create an AntialiasedPolygon2D node. That node relies on a texture with custom mipmaps to perform antialiasing.

public static void DrawWireRect(Rect2 rect, float width)

Parameters

rect Rect2

The dimensions of the rectangle.

width float

The thickness of the line.

_Process(float)

Called during the processing step of the main loop. Processing happens at every frame and as fast as possible, so the delta time since the previous frame is not constant. delta is in seconds.

It is only called if processing is enabled, which is done automatically if this method is overridden, and can be toggled with SetProcess(bool).

Corresponds to the Godot.Node.NotificationProcess notification in _Notification(int).

Note: This method is only called if the node is present in the scene tree (i.e. if it's not an orphan).

public override void _Process(float delta)

Parameters

delta float

_Ready()

Called when the node is "ready", i.e. when both the node and its children have entered the scene tree. If the node has children, their Godot.Node._Ready() callbacks get triggered first, and the parent node will receive the ready notification afterwards.

Corresponds to the Godot.Node.NotificationReady notification in _Notification(int). See also the onready keyword for variables.

Usually used for initialization. For even earlier initialization, may be used. See also Godot.Node._EnterTree().

Note: Godot.Node._Ready() may be called only once for each node. After removing a node from the scene tree and adding it again, _ready will not be called a second time. This can be bypassed by requesting another call with Godot.Node.RequestReady(), which may be called anywhere before adding the node again.

public override void _Ready()