- Home /
Referencing multiple Textures from a Component
I have a Player GameObject
which contains a SpriteRenderer
Component. I have set the Sprite
property to the right texture, e.g. archer.png
. However, I would like to dynamically change that texture based on the player's equipment. For example, switching the sprite to warrior.png
or mage.png
.
I understand how to dynamically change the texture by calling Material.SetTexture
. My question is what is the best practice for "referencing" those different textures?
Option 1 - Bind texture directly from the editor
hould I create a field on my script for each texture which can be set?
Texture archer_texture;
Texture mage_texture;
Option 2 - Load from Prefab
nd set those all within the Unity editor? Should I create all of those textures as prefabs, and then instantiate them by name?
... = Instantiate(Resources.Load("archer_texture_prefab"));
Option 3 - Use a TextureAtlas?
r, should I put all those textures into one file and use a TextureAtlas? If I did that, is there an easy way to dynamically set the texture coordinates to use the right 'section' of the image?
All of these methods seem like overkill. Am I missing something more obvious?
Ideally I could just dump the textures into a folder (e.g. /Textures/PlayerTextures/) and then load them by name. Is that possible?
Your answer
Follow this Question
Related Questions
Assigning UV Map to model at runtime 0 Answers
Best practice models, textures for rpg 2 Answers
Best practice for many similar scripts in a game? 0 Answers
Blender textures turn pink 1 Answer
How to access texture copy when read/write is enabled 1 Answer