|
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
16.10.2013, 00:33
|
#91
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
спасибо, в справке не нашел что можно с помощью & отследить сразу две )
|
(Offline)
|
|
06.03.2014, 12:09
|
#92
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Ребят подскажите такой вопрос:
в общем, работаю сейчас над навигацией камеры, сделал скрипт перемещения камеры и вращения, все делал через translate и rotation.
Перемещение работает нормально, меня устраивает по удобству, а вот с вращением беда выглядит убого и по удобству тоже не особо хорошо получилось.
Начал думать и читать справки. Появилась идея сделать вращение (и перемещение до кучи) через Rigidbody, AddForce и AddTorque (в режимах импульса и силы) отслеживая перемещения мыши и генерируя преобразованные векторы направления и вращения. По задумке такую систему можно будет потом безболезнено перенести на андроид для управления жестами.
Собственно вопрос: насколько это правильно? Т.к. знаю что каждый кто разрабатывает игру рано или поздно сталкивается с навигацией камеры, притом на одном из ранних этапов разработки. Какой метод оптимальнее подходит?
Расскажите как вы реализуете работу с камерой, может у вас есть какие-то алгоритмические решения выработанные с опытом.
|
(Offline)
|
|
06.03.2014, 12:23
|
#93
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Передача переменной в метод
какая камера нужна то для какого вида?
в любом случае, через ригидбоди это какой-то ужасный изврат.
мауслуки обычные удобнее всего через углы эйлера делать имхо.
в стандартных ассетах юнити уже есть пример мауслука для первого лица, можешь его за основу брать.
|
(Offline)
|
|
06.03.2014, 15:05
|
#94
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Сообщение от Mr_F_
какая камера нужна то для какого вида?
|
вид стратегический, над полем боя. Что-то отдаленно похожее как в игре "Проклятые земли"
по поводу ригидбоди задумался т.к. это в теории (понимаю что извратство) позволит сделать навигацию камеры с помощью жестов мыши и соответственно жестом пальцами в тач-варианте (аналог: скроллинг веб-страницы на планшете). Передавать и вращать не физическим движком а используя Transform слишком деревяно выходит. Или все-таки это более оптимальный вариант просто требующий доработки?
|
(Offline)
|
|
06.03.2014, 17:19
|
#95
|
Терабайт исходников
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений (для 6,051 пользователей)
|
Ответ: Передача переменной в метод
я не понимаю как связан физический движок и жесты мыши.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.03.2014, 17:41
|
#96
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Сообщение от Mr_F_
я не понимаю как связан физический движок и жесты мыши.
|
к примеру слайд мышью: в одной точке зажать ЛКМ, в другой отпустить, получится вектор направления который можно приложить к камере заставив ее двигаться в этом направлении с последующим затуханием (drag инерция при использовании rigidbody), то же самое слайд мыши при нажатии ПКМ, только для определения силы вращения (что-то вроде мауслук но с инерцией).
Я просто хочу организовать доводку и нативное управление и переложить расчеты на физ.движок а не на геометрические и физические формулы определения кватерниона вращения, направления движения и величины векторов с которыми перемещение и вращение происходит.
Наверное слишком усложняю, но покурив форумы увидел что многие реализуют перемещение и вращение обычным трансформом, но нигде не нашел по переносу их на жесты на мультитаче.
Или все что я расписал выше легко реализуется без rigidbody?
|
(Offline)
|
|
06.03.2014, 18:19
|
#97
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Передача переменной в метод
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.03.2014, 10:49
|
#98
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Сообщение от pax
|
Спасибо, попробую. Плюс в справке нашел аналог для вращения - буду изучать
|
(Offline)
|
|
13.05.2014, 12:06
|
#99
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Определить координаты мыши на плоскости в пространстве можно только рейкастом или есть какие-то математические варианты, типа проекции экранных координат в мировые?
Если только рейкаст хотел уточнить - запускать луч каждый Update не слишком будет грузить ресурсы компьютера? Или есть какие-то методы оптимизации?
Последний раз редактировалось EvilOkta, 13.05.2014 в 13:44.
|
(Offline)
|
|
13.05.2014, 17:54
|
#100
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Передача переменной в метод
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.05.2014, 18:06
|
#101
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
ох туплю.... как проверить число типа float на целочисленность, т.е. что у его текущего значения нет дробной части?
|
(Offline)
|
|
27.05.2014, 18:22
|
#102
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Передача переменной в метод
if(Mathf.Abs(floatVar - (int)floatVar) < 0.00001f){
}
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
10.06.2014, 23:44
|
#103
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
а как из рейкаста удалить взаимодействие со группой объектов кроме определенных? Чтобы информация о столкновении считывалась только с определенных объектов?
Чувствую надо копать в слоях, но подскажите хотя бы принцип
upd. вроде есть способ через Layer Mask пока роюсь в справках
Последний раз редактировалось EvilOkta, 11.06.2014 в 10:21.
|
(Offline)
|
|
11.06.2014, 15:09
|
#104
|
Знающий
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений (для 180 пользователей)
|
Ответ: Передача переменной в метод
static bool Raycast(Vector3 origin, Vector3 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
layerMask - маска слоя, которая используется для селективного игнорирования коллайдеров при пускании луча.
Про слои тут:
Layers
Там есть прямо пример селективного пускания лучей.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.06.2014, 10:19
|
#105
|
Знающий
Регистрация: 31.07.2008
Сообщений: 321
Написано 108 полезных сообщений (для 229 пользователей)
|
Ответ: Передача переменной в метод
Сообщение от seaman
static bool Raycast(Vector3 origin, Vector3 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
layerMask - маска слоя, которая используется для селективного игнорирования коллайдеров при пускании луча.
Про слои тут:
Layers
Там есть прямо пример селективного пускания лучей.
|
Спасибо, вроде разобрался но ползая по справкам и форумам не понял немного по слоям:
- можно ли задавать лучу группу слоев а не один (например - поверхность уровня, динамичные объекты, статичные объекты, другие. Или в этом случае пускается например два луча отдельно по каждому слою?
- программно менять слой в рантайме, возможно ли? например объект перемещать из статичных в динамичные и т.д
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:40.
|