Хотя приведенная ниже функция изменения спрайтов должна работать именно так, как вы просили, я бы посоветовал вам взглянуть на аниматора Unity. Обычно, когда люди меняют спрайты, это создает анимацию для действия (например, размахивая мечом или открывая дверь), и это обычно делается в более простых движках путем замены спрайтов вручную. Unity, однако, имеет встроенную поддержку анимации, позволяющую вам создать файл анимации для всех необходимых спрайтов, а затем сказать игре, чтобы они автоматически запускались при определенных условиях в контроллере анимации.
Бенджамин Дэнджер Джонсон
Ответы:
20
Код был закомментирован для вас. Наслаждаться.
publicSprite sprite1;// Drag your first sprite herepublicSprite sprite2;// Drag your second sprite hereprivateSpriteRenderer spriteRenderer;voidStart(){
spriteRenderer =GetComponent<SpriteRenderer>();// we are accessing the SpriteRenderer that is attached to the Gameobjectif(spriteRenderer.sprite ==null)// if the sprite on spriteRenderer is null then
spriteRenderer.sprite = sprite1;// set the sprite to sprite1}voidUpdate(){if(Input.GetKeyDown(KeyCode.Space))// If the space bar is pushed down{ChangeTheDamnSprite();// call method to change sprite}}voidChangeTheDamnSprite(){if(spriteRenderer.sprite == sprite1)// if the spriteRenderer sprite = sprite1 then change to sprite2{
spriteRenderer.sprite = sprite2;}else{
spriteRenderer.sprite = sprite1;// otherwise change it back to sprite1}}
У вас должен быть рендерер спрайтов, прикрепленный к вашему GameObject. Создайте новый C # Script и прикрепите к нему GameObject. Вставьте код между скобками ... Я уверен, что вы можете понять это оттуда :)
Ответы:
Код был закомментирован для вас. Наслаждаться.
У вас должен быть рендерер спрайтов, прикрепленный к вашему GameObject. Создайте новый C # Script и прикрепите к нему GameObject. Вставьте код между скобками ... Я уверен, что вы можете понять это оттуда :)
источник