- Home /
how to substitute sprites in an animation?
Hey Guys,
I'm making a 2D platformer, which has a space marine type character that runs around shooting monsters with various weapons. The character is made of 2D animated sprite sequences. I have him walking, running, jumping, etc.
The issue I'm having, however, is that I need him to be able to switch weapons, and I'm not sure what is the best way to go about doing that, in terms of how to display it. I have sprite sequences of him with each weapon, but as far as I know, there doesn't seem to be a way of substituting one sprite sequence for another in the animator window.
Can anyone offer me any suggestions of what the best way to do this would be?
Alright, I found a script that is meant to be able to switch out the sprite sheet for another one during runtime. But I can't wrap my head around how to implement it.
Here's the script:
using UnityEngine;
using System;
public class ReSkinAnimation : $$anonymous$$onoBehaviour {
public string spriteSheetName;
void LateUpdate () {
var subSprites = Resources.LoadAll<Sprite>("Characters/" + spriteSheetName);
foreach (var renderer in GetComponentsInChildren<SpriteRenderer>())
{
string spriteName = renderer.sprite.name;
var newSprite = Array.Find(subSprites, item => item.name == spriteName);
if (newSprite)
renderer.sprite = newSprite;
}
}
}
If anyone has seen this before and knows how it works, could you please show me how this works in an example? $$anonymous$$ore specifically, how does this relate to the game object with the sprite attached?
Answer by sn1ckers · Jan 28, 2016 at 01:23 PM
The code snippet you havet found is explained in this video https://m.youtube.com/watch?v=HM17mAmLd7k
Thanks, man. I had watched that video before, but forgot that he talked about that. Got it working now.
Your answer
![](https://koobas.hobune.stream/wayback/20220612061856im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
What are the best practices for reusing an animation controller? 0 Answers
How do you control where your animation starts? 1 Answer
Anima2d - How to record Sprite Mesh Order In Layer? 0 Answers
Unity 2d Animation from spritesheet: How can I move the character according to the animation? 0 Answers
Override Sprite in Animation 0 Answers