Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/163: Рейтинг темы: голосов - 163, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 06.07.2016
Сообщений: 48
1

Запретить объекту выходить за камеру(границу экрана)

25.05.2018, 00:04. Показов 34115. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Игра 2D, Границы камеры и есть граница экрана, как запретить объекту которым управляет игрок(WASD), выходить за камеру?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2018, 00:04
Ответы с готовыми решениями:

Как запретить дочернему блоку выходить за границы экрана
Добавил на страницу сплитер, чтобы изменять ширину блоков. С левым блоком все хорошо, но когда...

Запретить главной форме выходить за пределы
Как запретить форме вылезать за края экрана ? Нигде найти не могу, и видимо в обработчик не туда...

Запретить внутреннему диву выходить за границы родительского
Есть главный блок container,внутри него resize он может изменять свои размеры,подскажите как можно...

Как запретить скрипту выходить за пределы своей директории?
Я как-то на локальном комп-е баловался с созданием/удалением файлов с помощью php, и в результате...

10
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
25.05.2018, 10:10 2
вам помогут методы Камеры.
https://docs.unity3d.com/Scrip... amera.html

Vector3 wp1, wp2;

// left-top
wp1 = Camera.main.ScreenToWorldPoint(new Vector3(0f,Screen.height,0f)); // 0,1,0

// right-bottom
wp2 = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width,Screen.height,0f)); // 1,1,0

ну а далее вы уже используйте х/у данных точек как ваша душа пожелает

Добавлено через 35 секунд
wp1.х например

Добавлено через 54 секунды
если выходит за рамки этих границ, то не двигаете обьект
1
0 / 0 / 1
Регистрация: 06.07.2016
Сообщений: 48
10.06.2018, 22:04  [ТС] 3
Можете написать приблизительный код?
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
11.06.2018, 10:18 4
Migner, приблизительный я уже написал выше)

Добавлено через 1 минуту
C#
1
2
3
4
5
void Start (){
        // границы екрана
        min = Camera.main.ViewportToWorldPoint (new Vector2 (0, 0));
        max = Camera.main.ViewportToWorldPoint (new Vector2 (1, 1));
    }
C#
1
2
3
4
5
6
7
8
// улетела пуля за екран по оси х
        if (transform.position.x > max.x || transform.position.x < min.x) {
            Destroy (this.gameObject);
        }
        // улетела пуля за екран по оси у
        if (transform.position.y > max.y  || transform.position.y < min.y) {
            Destroy (this.gameObject);
        }
Добавлено через 43 минуты
а ну и да , тут нужно замениь мой Дестрой() на ваше ограничение
1
0 / 0 / 1
Регистрация: 06.07.2016
Сообщений: 48
12.06.2018, 23:45  [ТС] 5
А есть ограничение которое действует как Box colider, которое не позволяет выходить за рамки экран в прямом смысле этого слова, а по поводу удаления объекта когда он выходит за экран камеры - для этого лучше использовать
OnBecameInVisible()
или когда объект виден в камере
OnBecameVisible()
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
13.06.2018, 17:34 6
Лучший ответ Сообщение было отмечено Migner как решение

Решение

Цитата Сообщение от Migner Посмотреть сообщение
А есть ограничение которое действует как Box colider
да есть)
ну есть нескольковариантов
1) поставьте коллайдеры по бокам экрана и они должны быть не триггерами .
физически не даст уйти
2) снова коллайдеры но триггеры, которые будут контролировать нахождение
3) 1 коллайдер на весь экран , триггер.
вариантов куча, главное выбрать подходящий вам
1
0 / 0 / 1
Регистрация: 06.07.2016
Сообщений: 48
13.06.2018, 18:12  [ТС] 7
Цитата Сообщение от f3hler Посмотреть сообщение
да есть)
ну есть нескольковариантов
1) поставьте коллайдеры по бокам экрана и они должны быть не триггерами .
физически не даст уйти
2) снова коллайдеры но триггеры, которые будут контролировать нахождение
3) 1 коллайдер на весь экран , триггер.
вариантов куча, главное выбрать подходящий вам
по поводу первого - в смысле просто поставить какой то объект по краю и дать ему свойство box colider?
0
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
13.06.2018, 18:16 8
empty gameObject с бокс-коллайдером
1
0 / 0 / 1
Регистрация: 06.07.2016
Сообщений: 48
13.06.2018, 21:40  [ТС] 9
Цитата Сообщение от f3hler Посмотреть сообщение
empty gameObject с бокс-коллайдером
ах), ну честно говоря я пробовал так - не получается в связи с тем что если изменяется экран, то он криво встает(

Добавлено через 1 час 44 минуты
+ так же есть некоторые предметы котрые летят сверху в низ. Они как бы "пролетают" и исчезают за границей экрана. Их Box колайдер не пропускает, слои использовать не могу т.к уже использую их кое для чего. Какие есть варианты?
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10419 / 5149 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
14.06.2018, 00:12 10
Migner, Вообще говоря, это странная логика запрещать выходить за границы камеры. Сцена не должна зависеть от камеры. Вы должны ограничивать сцену, а не камеру. Камера - это лишь пассивный наблюдатель, от нее не должно ничего зависеть.
1
136 / 131 / 43
Регистрация: 07.11.2017
Сообщений: 553
14.06.2018, 10:01 11
Цитата Сообщение от Migner Посмотреть сообщение
Их Box колайдер не пропускает,
использвать тригерные коллайдеры

Цитата Сообщение от Storm23 Посмотреть сообщение
странная логика запрещать выходить за границы камеры
нормальная логика, если уровень равен 1 екрану, т.е. размеру нашей камеры.

Цитата Сообщение от Migner Посмотреть сообщение
Какие есть варианты?
пост выше
и чем вас не устроил этот метод?
1
14.06.2018, 10:01
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2018, 10:01
Помогаю со студенческими работами здесь

Блокирование движение за границу экрана
Доброго времени суток, начинающий познаватель сей многожрущий оперативки операционки. И вопрос...

Блок, выходящий за границу экрана
Имеется резиновый сайт. В правой части - несколько блоков с контентом. Эти блоки имеют справа...

Панель вышла за границу экрана
Собсна...скрылась, и не выезжает почему-то... на скрине она в виде полоски слева...

Запрет перемещения формы за границу экрана
как запретить форме выходить за пределы экрана?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru