#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;