Как я могу создать префаб на стороне объекта, с которым вы сталкиваетесь?

avatar
Chris
8 августа 2021 в 17:21
45
1
0

Я пытаюсь, чтобы мой игрок приземлился на плитку, и если он приземлится на эту плитку, поместите новую плитку сбоку от плитки, на которую вы приземлились. В настоящее время, как у меня есть, он поместит новую плитку на первую начальную. Я добавил фотографию, чтобы помочь понять, чего я пытаюсь достичь. Белый куб — ​​это игрок, и я хочу, чтобы красная плитка слева от синей была слева от той, на которой я нахожусь.

Источник
BugFinder
8 августа 2021 в 22:05
0

Существует множество руководств по определению мест ударов/столкновений. Попробуйте найти его, так как он охватывает то, что вам нужно

Ответы (1)

avatar
Mavili
8 августа 2021 в 19:59
0

Предположим, что одна плитка занимает одну единицу, тогда если вы хотите, например, разместить плитку:

Слева от игрока:

tile.position = new Vector3(Mathf.RoundToInt(player.position.x) - 1, player.position.y, player.position.z);

Перед игроком:

tile.position = new Vector3(player.position.x, player.position.y, Math.RoundToInt(player.position.z) - 1);

Таким образом, тайлы размещаются на абстрактной сетке с целочисленными координатами.

P.S.: Если ваша плитка занимает более одной единицы, то вам нужно скруглить ее с определенным шагом. Например, если ваш тайл размером 10х10, то необходимо, чтобы координаты были кратны 10. Если вам нужна функция округления с шагом, то можете попросить - скину.

Надеюсь, мне пришла в голову идея.

Chris
8 августа 2021 в 20:02
0

Кажется, что это определенно сработает, но я очень новичок в этом. Я не уверен, как бы я действительно добавил это.

Mavili
9 августа 2021 в 05:25
0

Попробуйте сделать это после создания плитки: var tile = Instantiate(Object); tile.transform.position = new Vector3(Mathf.RoundToInt(player.position.x) - 1, player.position.y, player.position.z); Где «игрок» — это преобразование куба.

derHugo
9 августа 2021 в 06:28
0

In front of the player должно быть z + 1 не - 1 ;)

Mavili
9 августа 2021 в 15:29
0

Это зависит от того, какая передняя часть камеры. Да и к тому же особой разницы нет, у любого хватит мозгов поменять "-" с "+".