Ok, so I did some research into how unity handles 3D assets in 2D. Having looked around, I think I now can better answer your question (through explaining the difference Unity and Godot have in rendering styles, when it comes to 2D. It’s kinda long... Sorry):
Both Unity and Godot use OpenGL (and DirectX for Unity on windows) for rendering both their 3D scenes and their 2D scenes. OpenGL is intended to be used with 3D graphics, and though it can do 2D graphics as well, it’s technically not truely 2D like in the game engines of old.
In modern game engines 2D is actually still 3D, but rendered with an orthographic camera. This is so it looks flat, and if you’re only using 2D sprites, then you’d never know it’s actually quads (squares) hanging in 3D space under the hood.
The problem with using a 3D engine for 2D graphics is how do you make it pixel perfect? (I’m assuming you know what ‘pixel perfect’ means). Another problem is physics for 2D, but I’ll leave that for another day (as it’s not in the question, and I’d have to brush up on how physic engines work :smile: )
------*
Unity handles this by using a pixel ratio, so it can convert pixels to unity units. Unity then scales the quad by the amount of pixels times the ratio. Then it renders the whole thing in an orthographic camera. Unity doesn’t try to hide that it’s 2D engine is actually 3D, just rendered flat. Because Unity decided to keep it’s 3D engine and 2D engine together, you can place 3D objects around in a 2D scene, because the 2D scenes is actually a 3D scene. (If you push the little 2D button in the Unity editor so it’s not in 2D mode, you can look around at your 2D scene in 3D)
------*
Godot handles the pixel perfect problem by separating the 3D engine from the 2D engine. While Unity uses a pixel to unit ratio, Godot uses one pixel per unit (assuming no scaling). Godot makes quads with the size of the sprite in pixels, and then applies whatever scaling afterwards (if it’s scaled, otherwise it just stays the same size)
This keeps things pixel perfect and has additional benefits like optimization specifically for 2D. However, because the 2D render engine is kept separate from the 3D, you cannot just mix and match them like you do in Unity, because they’re technically entirely different systems as far as the game engine is concerned (despite them both using OpenGL). The only way to mix ‘true’ 3D with ‘true’ 2D in Godot is either to render your 3D scene to a 2D texture, or to write a 2D stack on top of the existing 3D stack in Godot (basically write a system to handle 2D like in Unity).
------*
All of this is to say you cannot really merge 3D and 2D together in Godot like you do in Unity, because of the difference in how they’re set up. Having tried to make my own game engine a couple times, I can say that both of these game engines are very powerful and feature packed, but how they handle stuff under the hood varies massively, and this leads to some interesting comparisons and workflows.
(Also, I just find this kinda thing interesting. I’ve always liked reading about how game engines work under the hood :sunglasses: )
Summery/TLDR:
The short answer is: No. you cannot use 3D game assets in Godot like you would in Unity, because of their differing ways of handling 2D rendering.
All that said, if you’ve found a way to make your 3D assets work in Godot 2D, then great! But personally I’m not aware of any method outside of the ones I’ve previously mentioned, though I’m sure someone else probably knows better than me :smile: