Войти на сайт

Авторизация, ждите ...
×

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

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128646

  • ajir
  • ajir аватар
  • Вне сайта
  • Мастер
  • Сообщений: 117
  • Спасибо получено: 67
Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.
Вот сейчас в проекте записал упрощенный код.
Первый вывод - все гуд (ну кроме того, что мишка с белым фоном - неправильно растянут, его формат не на квадрат, а на широкий экран, но это легко исправляется) а вторые два - видно, что что-то сильно не то с полупрозрачными спрайтами.
В чем фокус может быть?
Заранее спасибо.
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);


1.png


2.png


3.png


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

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

teddy_1280.png


raccoon0001.png


winnie0001.png
Последнее редактирование: 1 год 10 мес. назад от ajir.
Администратор запретил публиковать записи гостям.

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128648

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1196
  • Спасибо получено: 543
  • ВетеранПроект месяца 2 местоУчительПроект года 3 местоПроект месяца 1 местоПроект месяца 3 место
ajir пишет:
Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.
Вот сейчас в проекте записал упрощенный код.
Первый вывод - все гуд (ну кроме того, что мишка с белым фоном - неправильно растянут, его формат не на квадрат, а на широкий экран, но это легко исправляется) а вторые два - видно, что что-то сильно не то с полупрозрачными спрайтами.
В чем фокус может быть?
Заранее спасибо.
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);


1.png


2.png


3.png


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

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

teddy_1280.png


raccoon0001.png


winnie0001.png
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

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128651

  • ajir
  • ajir аватар
  • Вне сайта
  • Мастер
  • Сообщений: 117
  • Спасибо получено: 67
Alexandr_7 пишет:
Возможно я и не прав но разве в конце не должно быть точки с запятой. Хотя проблема явно не в этом. Если это c# то явно должна быть точка с запятой.
1. В проекте разумеется есть.
2. Видимо "зажевало" когда форматировал для форума, убирал лишние пробелы.
Последнее редактирование: 1 год 10 мес. назад от ajir.
Администратор запретил публиковать записи гостям.

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128652

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1196
  • Спасибо получено: 543
  • ВетеранПроект месяца 2 местоУчительПроект года 3 местоПроект месяца 1 местоПроект месяца 3 место
ajir пишет:
Alexandr_7 пишет:
Возможно я и не прав но разве в конце не должно быть точки с запятой. Хотя проблема явно не в этом. Если это c# то явно должна быть точка с запятой.
1. В проекте разумеется есть.
2. Видимо "зажевало" когда форматировал для форума, убирал лишние пробелы.

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

Нет. Тут в зеркальности дело. 1 картинка отзеркалена. Вторая нет. Но определенно наложение 2х картинок во втором и третьем случае.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 1 год 10 мес. назад от Alexandr_7. Причина: Дополнение
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: ajir

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128653

  • VarVarKa
  • VarVarKa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 235
  • Спасибо получено: 685
  • Проект месяца 2 местоТестерПроект месяца 1 местоВетеранОрганизатор конкурсовПроект месяца 3 место
ajir пишет:
Экспериментировал с Unity, столкнулся со странной проблемой.
Сейчас хоть наконец понял, что файлы без полупрозрачности отображаются "моим" способом всегда идеально, а с полупрозрачностью - всегда как-то странно.
Я смело говорю, что все картинки ведут себя одинаково.Только вот за непрозрачной картинкой ты никак не увидишь, что сейчас за ней (собственно потому, что она непрозрачная), но там есть накая же перевёрнутая картинка как в случае с прозрачностью.
Следует просто продолжать изучать шейдинг, чтобы эту решить проблему.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: ajir

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128655

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

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128656

  • ajir
  • ajir аватар
  • Вне сайта
  • Мастер
  • Сообщений: 117
  • Спасибо получено: 67
Вы т.е. думаете, что проблема в шейдере? У меня тоже среди прочих подозрений было то, что может шейдер как-то неправильно "делаю".
В настройках есть имена семи шейдеров, которые всегда добавляются в проект. Как только ввел поиск хоть одного из низ - хотя бы стал "возникать" шейдер.
Но чтобы работало полностью правильно - шейдер нужен другой?
Администратор запретил публиковать записи гостям.

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128657

  • ajir
  • ajir аватар
  • Вне сайта
  • Мастер
  • Сообщений: 117
  • Спасибо получено: 67
Стоп. Кажется понял. Наверно шейдер именно работает нормально.
1. Если бы у меня был именно Куб (трехмерный проект) то у него бы было шесть вершин и на каждой текстура.
2. Если у меня Квадрат (у меня проект двумерный создавал я) то у него все равно две стороны?! Ну и это создает проблемы, что для полупрозрачного - с другой стороны просвечивает?!
Что с этим делать - пока не понимаю, но если так, то понятно в каком направлении искать.
Администратор запретил публиковать записи гостям.

Unity. Наложение на gameobject прозрачной текстуры 1 год 10 мес. назад #128658

  • ajir
  • ajir аватар
  • Вне сайта
  • Мастер
  • Сообщений: 117
  • Спасибо получено: 67
Все, вопрос решен вроде!!!

Зачем мне куб, мне нужен простой квадрат (из примитивов Unity).
Заодно отпала необходимость отражать объект при помощи отрицательного scale. Вот исправленный код.
        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);

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


4.png



Всем спасибо, VarVarKa огромное спасибо, ее указание привело к решению!
Последнее редактирование: 1 год 10 мес. назад от ajir.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Alx_Yago
Время создания страницы: 0.491 секунд