Навигация по аватарам вокруг игровых карт Проблемы: скрытый аватар внутри плитки и анимация щелчка - PullRequest
0 голосов
/ 13 октября 2019

В настоящее время я работаю над игрой Tower Defense в Unity (2018.4). Я очень новичок в этом программном обеспечении и C #. Прямо сейчас у меня есть аватар, который перемещается по игровому экрану через плоскость NavMesh.

Оранжевый прямоугольник на моем рисунке ниже показывает, где находится прозрачная плоскость. Моя игровая карта (коричневая и зеленая) состоит из текстурированных плиток.

enter image description here

enter image description here

Myаватар - это серая вещь, которую вы видите на экране. Я использую NavMeshAgent и несколько сценариев для перемещения своего аватара в зависимости от того, где щелкает моя мышь на игровой карте.

Ниже приведена ссылка на видео о перемещении моего аватара.

https://forum.unity.com/threads/navigating-avatar-around-game-map-issues-avatar-hidden-inside-tiles-click-animation.759737/

Я пытаюсь получить помощь по следующим двум вопросам.

1) когда я перемещаю свой аватар в более возвышенное место (то есть с большим стеком плиток), он исчезает внутри плитки(см. рисунок). Я хочу, чтобы аватар стоял либо на вершине плитки, либо на нижнем уровне рядом с ней.

2) когда я нажимаю плитку на игровой карте, чтобы направить своего аватара туда, я хочунекоторая индикация или анимация того, где я нажал. (т.е. стрелка или кружок на месте моего щелчка мышью).

Любая помощь по этому вопросу будет принята с благодарностью.

1 Ответ

0 голосов
/ 13 октября 2019

На # 1:

Убедитесь, что на ваших игровых объектах GameObjects есть коллайдеры. Установите слой аватара на «Игнорировать Raycast». Затем вызовите Physics.RayCast из точки с такими же координатами x и z, что и у вашего аватара, но с координатой Y выше самой высокой точки, которую может достичь элемент. Установите маску для вызова, чтобы GameObjects на слое «Игнорировать Raycast» не генерировал попадание. RayCast вернет координату, из которой вы можете получить значение Y и использовать его для позиционирования вашего аватара относительно плитки. Более подробную информацию о звонке Raycast можно найти здесь - https://docs.unity3d.com/ScriptReference/Physics.Raycast.html.

На № 2:

Не думаю, что вам не следует задавать два вопроса, поэтому яУмышленно не ответили на второй. Я рекомендую отредактировать ваш вопрос, чтобы удалить вопрос № 2. И просто задайте отдельный вопрос о переполнении стека. Это лучший способ структурировать информацию, чтобы другие люди, помимо вас, могли учиться на основе ответов на ваши вопросы. Я говорю это по-дружески.

...