Расстояние, пройденное объектом - Форум Игроделов
Пт, 17 Май 2024, 05:00 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Расстояние, пройденное объектом (Я совсем новый)
Расстояние, пройденное объектом
CaustixДата: Вт, 25 Ноя 2014, 11:16 | Сообщение # 1
Нет аватара
 
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте!
Пытаюсь самостоятельно реализовать прототип игровой механики. В программировании не девственно-наивен, но в Unity 3D практически нулевой (изучаю АPI и туторы).
Потому и вопрошаю: Скажите, люди добрые, куда копать, если я хочу отслеживать расстояние, пройденное объектом (игроком). То есть, моя задача, остановить игрока (или вызвать событие), после того, как он прошёл определённое расстояние. При этом, по мере непрерывного передвижения игрока, показывать его текущее пройденное расстояние в целых метрах. Заранее благодарен.
 
СообщениеЗдравствуйте!
Пытаюсь самостоятельно реализовать прототип игровой механики. В программировании не девственно-наивен, но в Unity 3D практически нулевой (изучаю АPI и туторы).
Потому и вопрошаю: Скажите, люди добрые, куда копать, если я хочу отслеживать расстояние, пройденное объектом (игроком). То есть, моя задача, остановить игрока (или вызвать событие), после того, как он прошёл определённое расстояние. При этом, по мере непрерывного передвижения игрока, показывать его текущее пройденное расстояние в целых метрах. Заранее благодарен.

Автор - Caustix
Дата добавления - 25 Ноя 2014 в 11:16
ЛевшаДата: Вт, 25 Ноя 2014, 15:03 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата Caustix ()
куда копать, если я хочу отслеживать расстояние

Vector3.Distance()


X.cor.R (Prologue)
 
Сообщение
Цитата Caustix ()
куда копать, если я хочу отслеживать расстояние

Vector3.Distance()

Автор - Левша
Дата добавления - 25 Ноя 2014 в 15:03
CaustixДата: Вт, 25 Ноя 2014, 15:14 | Сообщение # 3
Нет аватара
 
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Спасибо! Кратко и ёмко. Можно я разверну вопрос в эту сторону? Аругментами в Vector3.Distance() являются 2 переменных типа vector3 (от и до которых меряеется расстояние). Чисто алгоритмически не могу сообразить как решить. В функции Update (), я использую Vector3.Distance(), при этом одна переменная - это объект игрока, который может двигаться во всех направлениях. Что будет второй переменной? Мой ход мысли таков - каждый кадр я должен ставить на текущее место игрока объект-пустышку, затем перемещать игрока, затем считать Vector3.Distance() и плюсовать это к float global sum_distance - переменной, хранящей общий пройденный путь в метрах. Так?
 
СообщениеСпасибо! Кратко и ёмко. Можно я разверну вопрос в эту сторону? Аругментами в Vector3.Distance() являются 2 переменных типа vector3 (от и до которых меряеется расстояние). Чисто алгоритмически не могу сообразить как решить. В функции Update (), я использую Vector3.Distance(), при этом одна переменная - это объект игрока, который может двигаться во всех направлениях. Что будет второй переменной? Мой ход мысли таков - каждый кадр я должен ставить на текущее место игрока объект-пустышку, затем перемещать игрока, затем считать Vector3.Distance() и плюсовать это к float global sum_distance - переменной, хранящей общий пройденный путь в метрах. Так?

Автор - Caustix
Дата добавления - 25 Ноя 2014 в 15:14
игнатДата: Вт, 25 Ноя 2014, 16:42 | Сообщение # 4
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Нет, лучше for с бесконечным аргументом в update поставить - так вернее комп загнётся. Запоминаете стартовую (изначальную) позицию объекта и сравниваете её с настоящей (с той, которая сейчас).


Правила форума · участник GCC
 
СообщениеНет, лучше for с бесконечным аргументом в update поставить - так вернее комп загнётся. Запоминаете стартовую (изначальную) позицию объекта и сравниваете её с настоящей (с той, которая сейчас).

Автор - игнат
Дата добавления - 25 Ноя 2014 в 16:42
ЛевшаДата: Вт, 25 Ноя 2014, 17:04 | Сообщение # 5
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата игнат ()
Запоминаете стартовую (изначальную) позицию объекта и сравниваете её с настоящей (с той, которая сейчас)

Не факт... это бы сработало только при прямолинейном движении.
Тут даже массива не надо, через определенные промежутки времени фиксируем текущую точку, меряем расстояние до предыдущей, затем удаляем предыдущую и делаем предыдущей текущую и т.д..
Пройденные расстояния за промежутки времени суммируем в отдельной переменной - все просто.


X.cor.R (Prologue)
 
Сообщение
Цитата игнат ()
Запоминаете стартовую (изначальную) позицию объекта и сравниваете её с настоящей (с той, которая сейчас)

Не факт... это бы сработало только при прямолинейном движении.
Тут даже массива не надо, через определенные промежутки времени фиксируем текущую точку, меряем расстояние до предыдущей, затем удаляем предыдущую и делаем предыдущей текущую и т.д..
Пройденные расстояния за промежутки времени суммируем в отдельной переменной - все просто.

Автор - Левша
Дата добавления - 25 Ноя 2014 в 17:04
CaustixДата: Вт, 25 Ноя 2014, 18:55 | Сообщение # 6
Нет аватара
 
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Благодарю.
игнат, я могу двигаться как захочу относительно начальной точки. Причём, с ускорением.
Левша, странно, что я не смог найти готовых решений.
 
СообщениеБлагодарю.
игнат, я могу двигаться как захочу относительно начальной точки. Причём, с ускорением.
Левша, странно, что я не смог найти готовых решений.

Автор - Caustix
Дата добавления - 25 Ноя 2014 в 18:55
VolkOrievithДата: Вт, 25 Ноя 2014, 20:15 | Сообщение # 7
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Цитата Левша ()
Пройденные расстояния за промежутки времени суммируем в отдельной переменной - все просто.

Очень дельный совет. Каждый кадр через "Vector3.Distance() " определяй расстояние между предыдущей и настоящей позицией игрока и полученное значение прибавляй к какой-либо переменной типа float.
 
Сообщение
Цитата Левша ()
Пройденные расстояния за промежутки времени суммируем в отдельной переменной - все просто.

Очень дельный совет. Каждый кадр через "Vector3.Distance() " определяй расстояние между предыдущей и настоящей позицией игрока и полученное значение прибавляй к какой-либо переменной типа float.

Автор - VolkOrievith
Дата добавления - 25 Ноя 2014 в 20:15
CaustixДата: Вт, 25 Ноя 2014, 20:38 | Сообщение # 8
Нет аватара
 
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
А как зафиксировать эти положения?
Я не могу найти связь между GameObject, Vector3 и transform.position. Куда сходить, чтобы понять?
 
СообщениеА как зафиксировать эти положения?
Я не могу найти связь между GameObject, Vector3 и transform.position. Куда сходить, чтобы понять?

Автор - Caustix
Дата добавления - 25 Ноя 2014 в 20:38
seamanДата: Вт, 25 Ноя 2014, 22:06 | Сообщение # 9
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
transform.position - это Vector3. Вот первая связь
transform - компонент любого GameObject. Вот вторая связь
В Start запоминаешь начальную позицию объекта в некоей переменной
В Update
1. находишь расстояние между текущей позицией и запомненной переменной
2. прибавляешь это расстояние к пройденной дистанции
3. сохраняешь текущую позицию объекта в той же переменной
 
Сообщениеtransform.position - это Vector3. Вот первая связь
transform - компонент любого GameObject. Вот вторая связь
В Start запоминаешь начальную позицию объекта в некоей переменной
В Update
1. находишь расстояние между текущей позицией и запомненной переменной
2. прибавляешь это расстояние к пройденной дистанции
3. сохраняешь текущую позицию объекта в той же переменной

Автор - seaman
Дата добавления - 25 Ноя 2014 в 22:06
CaustixДата: Ср, 26 Ноя 2014, 06:20 | Сообщение # 10
Нет аватара
 
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Большущее спасибо. В общем разобрался. Пойду практиковаться)
 
СообщениеБольшущее спасибо. В общем разобрался. Пойду практиковаться)

Автор - Caustix
Дата добавления - 26 Ноя 2014 в 06:20
Форум Игроделов » UNITY3D » СКРИПТИНГ » Расстояние, пройденное объектом (Я совсем новый)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024