Создайте всплывающее меню стиля симов при нажатии на персонажа в Unity3D - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь создать игру, которая использует концепцию из известной игры "The Sims".Прямо сейчас я строю ИИ для 3d персонажа, и мне нужно, чтобы игрок мог определить, куда персонаж должен идти или что делать.Я хочу знать, как лучше всего создать всплывающее меню с анимацией, вроде того, чтобы показать некоторые варианты, чтобы, когда игрок нажимает на 3D-персонажа, он мог выбирать, где он хочет.Я знаю, что это должно быть использование элементов пользовательского интерфейса под холстом, который размещен над игроком.Однако я не могу иметь 2 холста в сцене, и я не знаю, как прикрепить их к персонажу, чтобы он двигался вместе с ним.Заранее спасибо. Here you can see what I mean, this is the Sims Game Здесь вы можете увидеть, что я имею в виду, это игра Sims

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Вы можете иметь столько холстов, сколько хотите. Для управления уровнями холста (который находится сверху) вы используете параметр «Порядок в слое» в компоненте «Холст» выбранного холста. Чем меньше число, тем выше интерактивность и видимость вашего холста.

Вы можете создать одного холста и родительского персонажа. Поскольку холст будет меньше, вы должны поиграть с этими параметрами, чтобы получить желаемое разрешение (не переусердствуйте):

enter image description here

Чтобы холст всегда был обращен к камере, вы должны дать Canvas новый скрипт с командой:

canvas.transform.LookAt(camera.transform);

Чтобы контролировать видимость холста, вы можете использовать эту строку кода:

canvas.enabled = bool;

Где bool ложно, когда вы хотите скрыть его, и bool верно, когда вы хотите показать это.

В «Sims» видимость сопровождается анимацией, которую вы также можете делать, но я бы оставил ее после того, как выполнил все функции.

1 голос
/ 23 марта 2019

У вас есть два основных подхода:

1) Использовать пользовательский интерфейс мирового пространства.

2) Использовать пользовательский интерфейс экранного пространства и позиционировать его в реальном времени, используя преобразование мирового пространства в экранное пространство.

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

Хотя, немного поиграв в The Sims раньше, я бы посоветовал вамиспользуйте систему мирового космического интерфейса, если вы преследуете тот же стиль, что и они.

...