Projectors and Projected Textures (Selection Rings, AoE targeting) In Godot

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By jaym

Projectors in Unity allow the developer to Project a texture onto a Mesh, such as a floor or a wall. Projected textures are useful for a variety of things which I can demonstrate examples of.

they are often used in RTS, or MMO’s, where individual units can be selected with the mouse cursor. Often giving indication of, not only the unit being targeted, but their alignment to the player (hostile, friendly, neutral)

The first two examples are of Projectors being used in the game World of Warcraft.

this is a selection ring for a unit

The green ring around the feet of the unit is a selection ring which utilizes a projector. Importantly, this unit can and will move around, the ring would be a child node of the player, sharing it’s transform. No matter the inclination of the ground-plane, the projector will always project the texture onto the (perhaps, inclined) surface. As the next example will show:

enter image description here

Here is a second example of a projector being utilized onto a non-flat ground mesh, this time, this is a targeting ring which denotes the damaging-radius of an AoE (Area of Effect) ability. unlike the Selection Ring, this Projector has it’s own independent transform, and can be translated in 3D space via the mouse cursor, potentially being changed as many times per second as the Framerate will allow, This indicates that as the unit is in the radius denoted, he will receive damage from the AoE ability.

enter image description here

Finally, here is a third and final example of the same selection ring being used in a different game, Warcraft 3. identical to the first example.

Is there any way to achieve this currently within Godot 3?
I have been looking for tutorials on the subject, or implementations, and I haven’t discovered any thus far.

Did you find a way to do it? I was searching for this too. Seems very basic, but I can’t find anything…

Dr.Velociraptor | 2022-08-24 22:38

:bust_in_silhouette: Reply From: Ninfur

In Godot 4.0, Decals can be used to project textures.

For earlier versions there is no built-in support, but I’ve seen a couple of git repos that have attempted this.

Examples: