Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/65: Рейтинг темы: голосов - 65, средняя оценка - 4.68
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25

(A*) Как заставить объект двигаться по точкам?

13.12.2015, 15:06. Показов 14006. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть рассчитанный с помощью A* путь.Внимание вопрос!Как заставить сферу пердолить по этим точкам?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2015, 15:06
Ответы с готовыми решениями:

Как заставить объект shape двигаться
VB 2008 Пытаюсь создать программку,чтобы при нажатии на 4 кнопки, квадратик двигался в нужных направлениях: 1. Когда присваиваю кнопке...

Как заставить объект двигаться по кривой линии?
Как заставить самолетик двигаться будто бы "волной"? т.е. вверх вниз - вверх вниз Что бы он улетел за край экрана, а через некоторое...

Как заставить объект двигаться только по вертикали?
Объект сцены RectItem, тащу его мышкой. Как заставить его двигаться только по вертикали? попробовал в MouseMoveEvent написать ...

30
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
14.12.2015, 00:30
RosterNord, это восхитительно! Мы ведь все знаем какой библиотекой реализовано именно у Вас "A*"?
0
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
14.12.2015, 09:37  [ТС]
да всё я почитал внимательнее и разобрался
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
14.12.2015, 17:45
Цитата Сообщение от RosterNord Посмотреть сообщение
Есть рассчитанный с помощью A* путь.
Если путь это массив точек, то к следующей точке можно двигаться с помощью Rigidbody.MovePosition
1
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
15.12.2015, 14:22  [ТС]
Я пробовал что-то похожее,игрок шёл сразу к конечной позиции.
0
36 / 11 / 1
Регистрация: 14.09.2015
Сообщений: 60
15.12.2015, 15:28
Возможно массив точек тебе возвращался в обратной последовательности (первый элемент массива это точка ближайшая к конечной точки)
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
15.12.2015, 16:12
Могу дать такой код, в моем случае куб всегда двигался к другому кубу где бы тот нинаходился.

C#
1
2
3
4
5
6
7
8
9
10
11
12
using UnityEngine;
using System.Collections;
 
public class IgrokScript : MonoBehaviour {
    public GameObject Cube;
 
        void Update () {
    
        transform.position =  Vector3.MoveTowards(transform.position, Cube.transform.position, 0.01f);  
    
    }   
    }
На счет движения по многим точкам от одной к другой советую тебе попилить тему Waypoints
1
 Аватар для Cr0c
753 / 600 / 204
Регистрация: 06.08.2015
Сообщений: 2,432
15.12.2015, 16:25
NIKOLAYY,
Есть рассчитанный с помощью A* путь
Там есть waypoint'ы, на то он и путь, а А* - название алгоритма.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
15.12.2015, 16:28
NIKOLAYY, A* - это алгоритм поиска самого короткого пути. Допустим у тебя есть игрок и ты кликашь по полю и он туда идёт, обходя препятствия, по самому короткому пути.

Цитата Сообщение от NIKOLAYY Посмотреть сообщение
куб всегда двигался к другому кубу где бы тот нинаходился.
Твой код не будет работать в таком примере, где нужно зелёному квадратику передвинуться на место красного:
Миниатюры
(A*) Как заставить объект двигаться по точкам?   (A*) Как заставить объект двигаться по точкам?  
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
15.12.2015, 16:40
Получается, что в игре, если обстановка меняется, то нужно пересчитывать путь перед каждым передвижением на соседнюю ячейку.
0
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
15.12.2015, 16:43  [ТС]
Я делал по вашему примеру,а точнее статье,которую вы дали мне вот она http://lsreg.ru/poisk-puti-na-... g-project/
Автор пишет:
Метод StartPath возвращает объект Path, который содержит последовательность точек маршрута. Сейчас нам достаточно того, что Seeker нарисует gizmo с этим путем.
.
Сижу разбираюсь сейчас.Но не как понять не могу Path это массив Vector'ов или что-то иное?
0
36 / 11 / 1
Регистрация: 14.09.2015
Сообщений: 60
15.12.2015, 16:44
Только через массив точек надо двигаться. Можно юзать код NIKOLAYY, но для передвижения от одно точки пути к следующей.
RosterNord, кстати можно еще navMesh использовать.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
15.12.2015, 16:48
Цитата Сообщение от Malkkiri Посмотреть сообщение
Только через массив точек надо двигаться.
Этот массив нужно пересчитывать, как только перешли на новую точку? Ведь точку на пути может занять другой юнит.
0
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
15.12.2015, 16:50  [ТС]
А он разве подойдёт для RTS?Насколько я знаю там нужно обновлять его,а у меня будут строится здания.Персонажи не будут проходить сквозь?
1
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
15.12.2015, 16:54
Цитата Сообщение от RosterNord Посмотреть сообщение
у меня будут строится здания.
Теперь я понял, почему NevMesh не подходит для RTS. Потому что NevMesh нельзя перестроить во время игры.
1
36 / 11 / 1
Регистрация: 14.09.2015
Сообщений: 60
15.12.2015, 16:58
8Observer8, тут все от задачи зависит, обычно от юнита не пересчитывают, а вот если здание построят на пути, то пересчитывать придется. Обычно это оптимизирую по разному. К примеру : у тебя есть база (пару строений ресурсы и что то еще). Существуют допусти 10 юнитов, они бегают по базе от одного объекта к другому, если при переходе с точки на точку перерасчитывать каждому путь, то нагрузка сильно возрастет от кол-тво юнитов. Поэтому юнит бежит по пути, строиться здание, и только после этого всем активным можно пересчитать путь, если координаты этого здания (+размер здания) входят в координаты одной из точек пути.
0
9933 / 2936 / 494
Регистрация: 05.10.2013
Сообщений: 7,968
Записей в блоге: 233
15.12.2015, 17:00
Цитата Сообщение от Malkkiri Посмотреть сообщение
а вот если здание построят на пути, то пересчитывать придется
Как NevMesh можно пересчитывать во время игры или это можно сделать только из редактора?
0
36 / 11 / 1
Регистрация: 14.09.2015
Сообщений: 60
15.12.2015, 17:00
это я про пересчет массива точек писал )
1
3 / 3 / 0
Регистрация: 02.12.2015
Сообщений: 25
15.12.2015, 17:01  [ТС]
Намёк на то,что можно использовать Navmesh,да?Хорошо поэкспериментирую.Залип уже на этой теме долго,столько всего реализовал и тут...
0
36 / 11 / 1
Регистрация: 14.09.2015
Сообщений: 60
15.12.2015, 17:03
если у тебя динамически меняется проходимость, то navMesh не прокатит. Он хорош для многих вещей, но для твоей задачи только a-star
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.12.2015, 17:03
Помогаю со студенческими работами здесь

Как заставить объект "Дерево" двигаться мышкой? Или любой другой объект
Добрый вечер. Не могу заставить "Дерево" двигаться при помощи мышки. Как это сделать? Сам код: #include "pch.h" #include...

Может кто подсказать как заставить объект двигаться
Хочу что б мой квадрат начал двигаться в низ Не могу найти не какой инфы в инете надеюсь тут помогут) внизу кинул заготовку с уже...

Заставить объект двигаться не по параболе, а по синусоиде
написал программу с движением по параболе, а нужно было по синусоиде. что бы не делал, никак не получается переделать программу. нужно...

Как заставить двигаться Scroll?
Господа форумчане и иже выше от них стоящие !:pardon: Кто подскажет, как заставить двигаться этот ослячий элемент типа скролл.Жму на...

Как заставить картинки двигаться??????
Solid Works позволяет сделать анимацию спроектированной детали


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru