Сохранение пропорций 2D-объектов в Game View: ненадежный код - PullRequest
0 голосов
/ 20 февраля 2019

Я сохраняю пропорции спрайта всегда при перемещении его по оси Z (с курсором) в Game View.Мой код

float dist = ((Camera.main.transform.position - mySprite.transform.position).magnitude);
float startSize = Mathf.Abs(1 / Camera.main.transform.position.z);
Vector3 realScale = myDict[mySprite.name];
dim = new Vector3((dist * realScale.x), (dist * realScale.y), (dist * realScale.z)) * startSize;
mySprite.transform.localScale = dim;

(Так как localScale объекта можно изменить при редактировании сцены, я сохраняю его значения перед входом в Game View, помещая их в словарь myDict.) В настоящее время я не использую этот код в Update, ноЯ звоню по кнопке редактора.Сначала казалось, что это работает хорошо, но потом я понял, что на самом деле это не точно.Я сделал несколько тестов, вырезав изображения из фона и превратив их в спрайты.Спрайт, наложенный на исходное изображение, всегда немного больше.Я мог бы умножить значения Scale на константу, но мне это не кажется правильным.Вы можете направить меня?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...