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
-
ObjectNodeCanvasLayerGizmos
- 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.LayerCanvasLayer.VisibleCanvasLayer.OffsetCanvasLayer.RotationDegreesCanvasLayer.RotationCanvasLayer.ScaleCanvasLayer.TransformCanvasLayer.CustomViewportCanvasLayer.FollowViewportEnableCanvasLayer.FollowViewportScaleNode.NotificationEnterTreeNode.NotificationExitTreeNode.NotificationMovedInParentNode.NotificationReadyNode.NotificationPausedNode.NotificationUnpausedNode.NotificationPhysicsProcessNode.NotificationProcessNode.NotificationParentedNode.NotificationUnparentedNode.NotificationInstancedNode.NotificationDragBeginNode.NotificationDragEndNode.NotificationPathChangedNode.NotificationInternalProcessNode.NotificationInternalPhysicsProcessNode.NotificationPostEnterTreeNode.NotificationResetPhysicsInterpolationNode.NotificationWmMouseEnterNode.NotificationWmMouseExitNode.NotificationWmFocusInNode.NotificationWmFocusOutNode.NotificationWmQuitRequestNode.NotificationWmGoBackRequestNode.NotificationWmUnfocusRequestNode.NotificationOsMemoryWarningNode.NotificationTranslationChangedNode.NotificationWmAboutNode.NotificationCrashNode.NotificationOsImeUpdateNode.NotificationAppResumedNode.NotificationAppPausedNode.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.EditorDescriptionNode._ImportPathNode.PauseModeNode.PhysicsInterpolationModeNode.NameNode.UniqueNameInOwnerNode.FilenameNode.OwnerNode.MultiplayerNode.CustomMultiplayerNode.ProcessPriorityObject.NotificationPostinitializeObject.NotificationPredeleteObject.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.NativeInstanceObject.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
Vector2The central position of the arc.
radius
floatThe radius of the arc.
startAngle
floatThe angle at which the arc will be drawn.
endAngle
floatThe angle where the arc will finish being drawn.
pointCount
intThe 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
Vector2The central position of the arc.
radius
floatThe radius of the arc.
startAngle
floatThe angle at which the arc will be drawn.
endAngle
floatThe angle where the arc will finish being drawn.
pointCount
intThe 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
floatThe 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
Vector2The central position of the circle.
radius
floatThe 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
Vector2The beginning of the line.
end
Vector2The 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
Vector2The beginning of the line.
end
Vector2The end of the line.
width
floatThe 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
MeshThe mesh that will be used to shape the design.
texture
TextureThe texture that will be used to draw on the mesh.
normalMap
TextureThe 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
floatThe 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
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
Rect2The 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
Textureposition
Vector2normalMap
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
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
Rect2The 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
Rect2The dimensions of the rectangle.
width
floatThe 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()