Задать вопрос
T1cKz
@T1cKz
Кратко обо мне

Unity 2D Как сделать что бы игрок мог заходить визуально за «стену»?

К примеру у меня есть объект - Стол
И за него можно зайти, как перед ним, так и за него
Но проблема в том что персонаж когда перед ним, стол сзади, а когда персонаж за столом, то он будто на нём стоит, т.к. слой "Героя" находиться перед слоем "стола"...
Вопрос в том, как сделать так, что бы когда игрок находился за столом(Подымался выше центра объекта), стол рендерился уже перед игроком?
  • Вопрос задан
  • 950 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
T1cKz
@T1cKz Автор вопроса
Кратко обо мне
UPD: решил
Для тех кому нужно будет, это работа с Order in Layer
Я сделал это костыльно через жопу, но
Допустим центр объекта на координате 5.1
public GameObject Table;
public GameObject Player;

void Update()
{
   if(Player.transform.position.y < 5.1) { Table.gameObject.GetComponent<SpriteRenderer>().sortingOrder = 0; } // типа если игрок ниже стола
else { Table.gameObject.GetComponent<SpriteRenderer>().sortingOrder = 1; } // если он выше
}


p.s. если есть у кого способ получше/улучшить это - пишите, буду рад
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alexander9alex
У меня возникла такая же проблема, и я нашёл решение в этом видео:
https://youtu.be/Oy7FCo2Refg?si=2Pn0fwYvss4H2lnU
Если вкратце, то нужно открыть Edit->ProjectSettings->Graphics, в самом начале Transparency Sort Mode поменять на Custom Axis, а в параметр ниже: Transparency Sort Axis указать значения: для x: 0, для y: 1, для z: 0. Теперь юнити будет рендерить объекты по оси y, а не по оси z, это решает данную проблему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы