Изображение искажается после обновления его спрайта во время выполнения (Unity 2019) - PullRequest
2 голосов
/ 23 апреля 2019

Я недавно обновил свой проект для использования Unity 2019, и по большей части это был плавный переход. Тем не менее, я столкнулся с одной проблемой, когда дело доходит до обновления и спрайта изображения во время выполнения.

Игра, над которой я работаю, имеет обратный отсчет в начале каждого уровня (3, 2, 1, GO!). Текст обратного отсчета представляет собой серию спрайтов, которые обновляются по таймеру, и все спрайты имеют одинаковое разрешение.

Это работало нормально до обновления до Unity 2019, но теперь, когда обратный отсчет доходит до "GO!", Похоже, что он был сдвинут горизонтально.

Я также выполнил тест, в котором я запустил обратный отсчет (GO !, 1, 2, 3), и возник противоположный эффект. В этом сценарии "GO!" выглядело нормально, а 1, 2 и 3 выглядели так, будто они были расширены по горизонтали.

Я установил минимальную тестовую сцену, в которой был только Canvas / Image и прикреплен следующий скрипт. Такое же поведение наблюдается, как показано на рисунках ниже.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ImageSwapTest : MonoBehaviour
{
    Image image;                                 //Image component
    [SerializeField] Sprite[] countDownSprites;  //Array of sprites used to populate the image component

    void Start()
    {
        image = GetComponent<Image>();
        StartCoroutine(UpdateImage());
    }

    IEnumerator UpdateImage()
    {
        int counter = 0;

        while (counter < sprites.Length)
        {
            yield return new WaitForSeconds(1);        //Wait 1 second
            image.sprite = countDownSprites[counter];  //Update the image to the next sprite
            counter++;
        }
    }
}

Ожидаемый:

enter image description here

Фактический:

enter image description here

Если я переверну заказ, то "GO!" нормальный размер и числа расширены:

enter image description here

Свойства изображения:

enter image description here

enter image description here

Как вы можете видеть, все 4 спрайта имеют одинаковое разрешение (я понимаю, что немного странно, что они все 1920x1280, но это выходит за рамки этого вопроса). Я не уверен, что вызывает изменение их размера во время выполнения.

Что-то изменилось в способе обработки изображений / спрайтов в Unity 2019? Возможно, это просто ошибка?

1 Ответ

3 голосов
/ 07 мая 2019

То же самое случилось со мной.Исправление было:

  1. Выберите текстуру в Unity
  2. Измените режим спрайта> Тип сетки с "Tight" на "Full Rect"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...