IMGUI Style requires Texture2d, Other GUI components use Sprites

I’m using a mix of IMGUI and static GUI elements in my game. However, while normal GUI elements want textures to be of type “Sprite (2D and UI)”, IMGUI styles and skins only accept textures of type “Texture”.

This means that I have to have two copies of every texture that makes up my GUI, one of each type, so that they are available to my various elements.

Is there a reason why IMGUI doesn’t accept Sprite textures? I really liked being able to define a single sprite sheet texture and have all the various tiny UI elements as sub-sprites.

Regardless of the reason behind it, clearly that isn’t going to change. Is there a way to tell Unity that a texture is both a regular texture and a Sprite without having to have two copies of each texture?

Also, GUI.ModalWindow doesn’t block input to GUI elements created on a Canvas that exist as GameObjects.

So I’m beginning to think I need to either use one system or the other, as mixing them seems to be problematic.