Выход объекта за пределы экрана - Форум Игроделов
Чт, 02 Май 2024, 11:53 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Выход объекта за пределы экрана
Выход объекта за пределы экрана
urbemAngeliДата: Вт, 04 Авг 2015, 13:42 | Сообщение # 1
Нет аватара
 
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Добрый день. Подскажите пожалуйста как в 2.5d игре запретить объекту выходить за пределы камеры?
 
СообщениеДобрый день. Подскажите пожалуйста как в 2.5d игре запретить объекту выходить за пределы камеры?

Автор - urbemAngeli
Дата добавления - 04 Авг 2015 в 13:42
QNicolyaДата: Вт, 04 Авг 2015, 15:18 | Сообщение # 2
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
urbemAngeli, ты вовремя, как раз в одном проекте столкнулся с этим)
У меня объект двигается по Ох, потому выглядит это так:
Код
float x = Camera.main.WorldToScreenPoint(transform.position).x;
- получаем размеры экрана
Код
if (x < 0)
- объект ушел левее экрана
Код
if (x > Screen.width)
- объект ушел правее экрана
С Оу там точно так, только вместо ширины подставляем высоту.


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
СообщениеurbemAngeli, ты вовремя, как раз в одном проекте столкнулся с этим)
У меня объект двигается по Ох, потому выглядит это так:
Код
float x = Camera.main.WorldToScreenPoint(transform.position).x;
- получаем размеры экрана
Код
if (x < 0)
- объект ушел левее экрана
Код
if (x > Screen.width)
- объект ушел правее экрана
С Оу там точно так, только вместо ширины подставляем высоту.

Автор - QNicolya
Дата добавления - 04 Авг 2015 в 15:18
seamanДата: Вт, 04 Авг 2015, 20:31 | Сообщение # 3
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Если пивот назначен на край спрайта, тогда спрайт сможет практически спрятаться за экран. Нужно учитывать координаты пивота. Их можно получить так:
Код
        SpriteRenderer renderer = GetComponent<SpriteRenderer>();
         Vector3 pivotOffsetWorldSpace = transform.position - renderer.bounds.center;
         
         Vector3 pivotPosition = new Vector3(
             transform.position.x + pivotOffsetWorldSpace.x,
             transform.position.y + pivotOffsetWorldSpace.y,
             transform.position.z
             );
 
СообщениеЕсли пивот назначен на край спрайта, тогда спрайт сможет практически спрятаться за экран. Нужно учитывать координаты пивота. Их можно получить так:
Код
        SpriteRenderer renderer = GetComponent<SpriteRenderer>();
         Vector3 pivotOffsetWorldSpace = transform.position - renderer.bounds.center;
         
         Vector3 pivotPosition = new Vector3(
             transform.position.x + pivotOffsetWorldSpace.x,
             transform.position.y + pivotOffsetWorldSpace.y,
             transform.position.z
             );

Автор - seaman
Дата добавления - 04 Авг 2015 в 20:31
QNicolyaДата: Вт, 04 Авг 2015, 21:50 | Сообщение # 4
God gave Rock'N'Roll to you
 
Сообщений: 3369
Награды: 3
Репутация: 352
Статус: Offline
Уууупс, забыл уточнить, что у меня 2.5д строится на лени и вранье, потому это просто камера в 3д под специальным углом.
Но, в принципе, могу сказать, что если объект занимает не больше 5-10% экрана и двигается не медленно, а эту проверку (и, соответственно, вывод из-за пределов экрана) делать в Update, то особых заморочек не нужно, ибо игрок всё равно не заметит разницы.


Если человек вас обманул - он мошенник, если он вас обманул дважды - вы дурак.
 
СообщениеУууупс, забыл уточнить, что у меня 2.5д строится на лени и вранье, потому это просто камера в 3д под специальным углом.
Но, в принципе, могу сказать, что если объект занимает не больше 5-10% экрана и двигается не медленно, а эту проверку (и, соответственно, вывод из-за пределов экрана) делать в Update, то особых заморочек не нужно, ибо игрок всё равно не заметит разницы.

Автор - QNicolya
Дата добавления - 04 Авг 2015 в 21:50
Форум Игроделов » UNITY3D » СКРИПТИНГ » Выход объекта за пределы экрана
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024