Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
Что-то не то с RawImage.
Салют.
Две проблемы у меня:
1. rawimage всегда отображается с артефактами,
по краям появляются некоторые участки шириной в 1-2 пикселя,
закрашенные не пойми чем не пойми откуда выплывшим.
На самом png изображении этих косяков нет, их создаёт Unity.
Просто я создаю rawimage, натягиваю через инспектор на него
картинку, и получаю такую вот картину.
Пример во вложениях к посту.
2. Появилась потребность двигать rawimage по канвасу,
я с этим справляюсь, но результат меня неустраивает.
Грубо говоря с двух сторон канваса я двигаю на встречу
друг другу 2 rawimage, каждая должна пройти путь
в половину ширины экрана, и остановится.
Работает всё, но в половине случаев картинки проходят
на несколько пикселей больше расстояние, и я не могу понять
в чём проблема. Один из участков кода отвечающий за сближение:
Каждый раз разный результат, rawimage практически в центре
останавливаются, но с погрешностью (чаще нахлёст друг на друга),
и это мне всю картину в целом портит.
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
Ответ: Что-то не то с RawImage.
Обе проблемы решил другим вариантом кода,
при чём первая проблема решилась сама собой,
при движении артефактов в окне "Game" не видно,
но отображаются в "Scene".
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
Ответ: Что-то не то с RawImage.
По идее первая проблема связана с маппингом текстуры. Т.е. вот этот желтый кусок у тебя скорее всего есть с другой стороны текстуры. Обычно такое решается установкой параметра Wrap Mode = Clamp в настройках импорта.
А по поводу второй проблемы - в очередной раз призываю использовать анимации, а не код для таких задач)
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от pax
По идее первая проблема связана с маппингом текстуры. Т.е. вот этот желтый кусок у тебя скорее всего есть с другой стороны текстуры. Обычно такое решается установкой параметра Wrap Mode = Clamp в настройках импорта.
А по поводу второй проблемы - в очередной раз призываю использовать анимации, а не код для таких задач)
С первым ничего не понял.
Со вторым, у меня ещё было много вариантов кода,
и проблема не решалась, из-за того, что у юнити всё в
рандомно-примерных флоатах, векторах, а дальтатайм
вообще срабатывает через разное время.
Финальный код, это на последнем сближении я просто
координаты желаемые уже устанавливаю вручную,
выравниваю короче это безобразие. Визуально вроде скачка незаметно.
А на счёт анимаций. Ну хз, я здесь подстраиваю картинки под высоту
и ширину экрана, заведомо не зная какое разрешение у игрока,
как это делать через анимации без кода я хз )
Но повторю, проблема решена принудительным трансформпозишном на
последние нужные координаты в конце этого безобразия.
if (GLOBALSUPERSCRIPT.CamStop == 0 && FightScene.ZanaveskaSost == 1) { GLOBALSUPERSCRIPT.CamStop = 1; SW = Screen.width; }
if (FightScene.ZanaveskaSost == 1 && LH < SW)
{
if (ZanaveskaLeft.gameObject.activeSelf == false)
{
ZanaveskaLeft.gameObject.SetActive(true);
ZanaveskaRight.gameObject.SetActive(true);
}
if (SuperTimer < 1f) { SuperTimer = SuperTimer + 1f * Time.deltaTime * 1000; }
if (SuperTimer > 0f)
{
LH = LH + Mathf.Floor(20f);
SuperTimer = 0f;
rectTransfrom.offsetMax -= new Vector2(Mathf.Floor(-10f), 0);
rectTransfrom2.offsetMin -= new Vector2(Mathf.Floor(10f), 0);
ZanaveskaLogoLeft.transform.Translate(Vector2.right * Mathf.Floor(10f));
ZanaveskaLogoRight.transform.Translate(Vector2.left * Mathf.Floor(10f));
}
}
if (FightScene.ZanaveskaSost == 1 && LH >= SW && MicroTimer == 0f)
{
MicroTimer = 2f;
float a = Mathf.Floor(ZanaveskaLogoLeft.transform.position.y);
float b = Mathf.Floor(ZanaveskaLogoRight.transform.position.y);
ZanaveskaLogoLeft.transform.position = new Vector2(Mathf.Floor(SW / 2 - 256), a);
ZanaveskaLogoRight.transform.position = new Vector2(Mathf.Floor(SW / 2), b);
}
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от Crystal
Непонятно только, почему по умолчанию нельзя было сделать
нормальную загрузку текстур в юнити.
Это и есть режим по умолчанию везеде.
Попросту удобно когда текстура сама зацикливается, нежели при моделирование каждый раз менять.
Остальное, побочные эффекты ввиду самой логики работы.
По этому на моделях для игр, рекомендуется как можно меньше швов и стараться их прятать, что бы не вылезали такие косяки.
В Blitz3D точно так же тайлиться, а для настроек были флаги:
16: Clamp U - ограничить текстуру по координате U
32: Clamp V - ограничить текстуру по координате V
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от Arton
Это и есть режим по умолчанию везеде.
Попросту удобно когда текстура сама зацикливается, нежели при моделирование каждый раз менять.
Остальное, побочные эффекты ввиду самой логики работы.
По этому на моделях для игр, рекомендуется как можно меньше швов и стараться их прятать, что бы не вылезали такие косяки.
В Blitz3D точно так же тайлиться, а для настроек были флаги:
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от Crystal
С каких пор канвас стал 3D? Это 2D UI объект на скриншоте, RawImage.
Ну, 2D это условность, абстракция. Всё через полигональное 3D делается.
Вспомни в пример Блиц, когда нацепляли квады для постобработки на камеру или интерфейса. Тоже самое.
Сообщений: 5,023
Написано 2,312 полезных сообщений (для 5,349 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от Crystal
Вафля короче, 2D должно быть 2Dшным...
Тогда возникает вопрос, что и как его будет обрабатывать? Универсальной реализации, как с полигональной графикой не придумали.
Это совсем не плохо что 2D через 3D идёт. Всё зависит от разработчиков движка.
P. S. Так-то 3D это всего лишь расширение 2D. Видяхе вовсе всё равно, что там у пользователя на выходе, ей главное данные правильно скормить.
Сообщений: 5,196
Написано 1,721 полезных сообщений (для 5,374 пользователей)
Ответ: Что-то не то с RawImage.
Сообщение от Arton
Тогда возникает вопрос, что и как его будет обрабатывать? Универсальной реализации, как с полигональной графикой не придумали.
Это совсем не плохо что 2D через 3D идёт. Всё зависит от разработчиков движка.
P. S. Так-то 3D это всего лишь расширение 2D. Видяхе вовсе всё равно, что там у пользователя на выходе, ей главное данные правильно скормить.
Я точно не помню, но вроде при создании проекта можно указать
он 2D или 3D, и что-то мне подсказывает в режиме 2D текстуры
работают по другому.