Unity. Наложение на gameobject прозрачной текстуры

Поддержка Фонда
Больше
3 года 4 мес. назад - 3 года 4 мес. назад #128646 от ajir
Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.
Вот сейчас в проекте записал упрощенный код.
Первый вывод - все гуд (ну кроме того, что мишка с белым фоном - неправильно растянут, его формат не на квадрат, а на широкий экран, но это легко исправляется) а вторые два - видно, что что-то сильно не то с полупрозрачными спрайтами.
В чем фокус может быть?
Заранее спасибо.
Code:
shader = Shader.Find("UI/Default"); GameObject g1 = GameObject.CreatePrimitive(PrimitiveType.Cube); Material m1 = new Material(shader); Texture t1= Resources.Load("PNG/PERSONES/winnie0001") as Texture2D m1.mainTexture = t1; g1.GetComponent<Renderer>().material = m1;g1.transform.localScale = new Vector2(-3, -3); g1.transform.localPosition = new Vector2(-3, -3);








Примечание. Я понимаю, что в названии темы лучше бы написать ПОЛУпрозрачной, но не влазит...

Добавка. Мои исходные картинки.





Последнее редактирование: 3 года 4 мес. назад пользователем ajir.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 2 место Ветеран Учитель Проект месяца 1 место Проект года 3 место Разработчик
Больше
3 года 4 мес. назад #128648 от Alexandr_7

ajir пишет: Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.
Вот сейчас в проекте записал упрощенный код.
Первый вывод - все гуд (ну кроме того, что мишка с белым фоном - неправильно растянут, его формат не на квадрат, а на широкий экран, но это легко исправляется) а вторые два - видно, что что-то сильно не то с полупрозрачными спрайтами.
В чем фокус может быть?
Заранее спасибо.

Code:
shader = Shader.Find("UI/Default"); GameObject g1 = GameObject.CreatePrimitive(PrimitiveType.Cube); Material m1 = new Material(shader); Texture t1= Resources.Load("PNG/PERSONES/winnie0001") as Texture2D m1.mainTexture = t1; g1.GetComponent<Renderer>().material = m1;g1.transform.localScale = new Vector2(-3, -3); g1.transform.localPosition = new Vector2(-3, -3);








Примечание. Я понимаю, что в названии темы лучше бы написать ПОЛУпрозрачной, но не влазит...

Добавка. Мои исходные картинки.





Code:
Texture t1= Resources.Load("PNG/PERSONES/winnie0001") as Texture2D
Возможно я и не прав но разве в конце не должно быть точки с запятой. Хотя проблема явно не в этом. Если это c# то явно должна быть точка с запятой.

Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Спасибо сказали: ajir

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Поддержка Фонда
Больше
3 года 4 мес. назад - 3 года 4 мес. назад #128651 от ajir

Alexandr_7 пишет: Возможно я и не прав но разве в конце не должно быть точки с запятой. Хотя проблема явно не в этом. Если это c# то явно должна быть точка с запятой.

1. В проекте разумеется есть.
2. Видимо "зажевало" когда форматировал для форума, убирал лишние пробелы.
Последнее редактирование: 3 года 4 мес. назад пользователем ajir.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 2 место Ветеран Учитель Проект месяца 1 место Проект года 3 место Разработчик
Больше
3 года 4 мес. назад - 3 года 4 мес. назад #128652 от Alexandr_7

ajir пишет:

Alexandr_7 пишет: Возможно я и не прав но разве в конце не должно быть точки с запятой. Хотя проблема явно не в этом. Если это c# то явно должна быть точка с запятой.

1. В проекте разумеется есть.
2. Видимо "зажевало" когда форматировал для форума, убирал лишние пробелы.


Ну если на вид то очевидно неправильное наложение текстуры. Неправильные позиция хотя юнити я не особо знаю.
Такое чувство что накладывается 2 картинки. Одна со сбитыми позициями а другая поверх правильно.

Нет. Тут в зеркальности дело. 1 картинка отзеркалена. Вторая нет. Но определенно наложение 2х картинок во втором и третьем случае.

Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 3 года 4 мес. назад пользователем Alexandr_7. Причина: Дополнение
Спасибо сказали: ajir

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место Организатор конкурсов Тестер Ветеран
Больше
3 года 4 мес. назад #128653 от VarVarKa

ajir пишет: Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.

Я смело говорю, что все картинки ведут себя одинаково.Только вот за непрозрачной картинкой ты никак не увидишь, что сейчас за ней (собственно потому, что она непрозрачная), но там есть накая же перевёрнутая картинка как в случае с прозрачностью.
Следует просто продолжать изучать шейдинг, чтобы эту решить проблему.
Спасибо сказали: ajir

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Поддержка Фонда
Больше
3 года 4 мес. назад #128655 от ajir

VarVarKa пишет:

ajir пишет: Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.

Я смело говорю, что все картинки ведут себя одинаково.Только вот за непрозрачной картинкой ты никак не увидишь, что сейчас за ней (собственно потому, что она непрозрачная), но там есть накая же перевёрнутая картинка как в случае с прозрачностью.
Следует просто продолжать изучать шейдинг, чтобы эту решить проблему.

Так что таки делать?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Поддержка Фонда
Больше
3 года 4 мес. назад #128656 от ajir
Вы т.е. думаете, что проблема в шейдере? У меня тоже среди прочих подозрений было то, что может шейдер как-то неправильно "делаю".
В настройках есть имена семи шейдеров, которые всегда добавляются в проект. Как только ввел поиск хоть одного из низ - хотя бы стал "возникать" шейдер.
Но чтобы работало полностью правильно - шейдер нужен другой?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Поддержка Фонда
Больше
3 года 4 мес. назад #128657 от ajir
Стоп. Кажется понял. Наверно шейдер именно работает нормально.
1. Если бы у меня был именно Куб (трехмерный проект) то у него бы было шесть вершин и на каждой текстура.
2. Если у меня Квадрат (у меня проект двумерный создавал я) то у него все равно две стороны?! Ну и это создает проблемы, что для полупрозрачного - с другой стороны просвечивает?!
Что с этим делать - пока не понимаю, но если так, то понятно в каком направлении искать.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Поддержка Фонда
Больше
3 года 4 мес. назад - 3 года 4 мес. назад #128658 от ajir
Все, вопрос решен вроде!!!

Зачем мне куб, мне нужен простой квадрат (из примитивов Unity).
Заодно отпала необходимость отражать объект при помощи отрицательного scale. Вот исправленный код.
Code:
shader = Shader.Find("UI/Default"); GameObject g1 = GameObject.CreatePrimitive(PrimitiveType.Quad); Material m1 = new Material(shader); Texture t1 = Resources.Load("PNG/PERSONES/winnie0001") as Texture2D; m1.mainTexture = t1; g1.GetComponent<Renderer>().material = m1; g1.transform.localScale = new Vector2(3, 3); g1.transform.localPosition = new Vector2(-3, -3);

Вот "полупрозрачный мишка" "в человеческом виде".





Всем спасибо, VarVarKa огромное спасибо, ее указание привело к решению!
Последнее редактирование: 3 года 4 мес. назад пользователем ajir.
Спасибо сказали: Alx_Yago

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.125 секунд
Работает на Kunena форум