Масштабирование в сборке модального пользовательского интерфейса в Unity

#c# #unity3d #modal-dialog #zooming #dotween

#c# #unity3d #модальный диалог #масштабирование #точка между

Вопрос:

Я разрабатываю обучающую игру в Unity, в которой много элементов пользовательского интерфейса. Иногда мне нужно отобразить модал, который является экземпляром сборного файла, и я хочу добавить эффект увеличения. Я попытался использовать DOTween со следующим кодом:

 GameObject modalPrefab = Instantiate 
                                (
                                    Resources.Load<GameObject>(prefabName),
                                    new Vector3(0, 0, 0), Quaternion.identity
                                );
Vector3 scale = modalPrefab.transform.localScale; // Store the current scale
modalPrefab.transform.DOScale(0, 0); // Set size to zero
modalPrefab.transform.DOScale(scale, 0.8f); // Scale in
  

Этот подход работает, но не очень хорошо, потому что он отображает сборку в полном размере в течение миллисекунды, прежде чем сделать ее маленькой, и это очень заметно. Есть идеи о том, как сделать это лучше (с DOTween или без него)? Спасибо.

Ответ №1:

Вы могли бы использовать анимацию для эффекта масштабирования. Просто измените масштаб модальной сборки с 0 на 1 при активации и наоборот.

Ответ №2:

Я нашел руководство по разработке игр очень полезным. В своем видео он использует «скудную анимацию». Взгляните, вы неправильно анимируете свой пользовательский интерфейс в Unity

Ответ №3:

Наконец я нашел решение, которое довольно простое. Вместо того, чтобы использовать DOTween для масштабирования до нуля, просто сделайте это способом Unity:

 modalPrefab.transform.localScale = Vector2.zero;