График Unity A * не масштабируется с холстом - PullRequest
0 голосов
/ 12 июля 2020

Я использую пакет A * graph, который я нашел здесь.

https://arongranberg.com/astar/download

все это хорошо работает в режиме просмотра сцены, и я смог установить график для обработки стен как препятствий.

enter image description here

However once I start the game the canvas scales and the graph's nodes no longer align with the walls.

введите описание изображения здесь

это действительно мешает мне найти путь. Если у кого-то есть идеи, как это исправить, мы будем очень признательны. Я попытался связать график с холстом, но он по-прежнему не масштабируется.

С уважением

1 Ответ

0 голосов
/ 20 июля 2020

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

private bool scanAgain = true;
    private void Update () {
        // This class uses the [ExecuteInEditMode] attribute
        // So Update is called even when not playing
        // Don't do anything when not in play mode
        if (!Application.isPlaying) return;

        navmeshUpdates.Update();

        // Execute blocking actions such as graph updates
        // when not scanning
        if (!isScanning) {
            PerformBlockingActions();
        }

        // Calculates paths when not using multithreading
        pathProcessor.TickNonMultithreaded();

        // Return calculated paths
        pathReturnQueue.ReturnPaths(true);

        
        if (scanAgain)
        {
            Scan();
            scanAgain = false;
        }
...