@Korsakovlev

Как сделать перемещение пола с игроком на нем?

У меня имеется 2д игра с видом сверху, хочу сделать чтобы пол двигался. Это движение не должно мешать двигаться игроку, но по законам физики он должен также двигаться и за полом.
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
В простейшем варианте должно быть что-то такое: когда игрок становится на платформу, мы делаем платформу его родительским объектом (свойство transform.parent), когда игрок спрыгивает с платформы, в transform.parent передаём null. Таким образом игрок будет двигаться сам по себе на платформе, будучи привязанным к ней до тех пор, пока не спрыгнет.

Выглядеть это будет как-то так:
using UnityEngine;

public class PlatformMove : MonoBehaviour {

	// movement

	private void OnCollisionEnter2D(Collision2D c) {
		if (c.gameObject.tag == "Player")
			c.transform.parent = transform;
	}

	private void OnCollisionExit2D(Collision2D c) {
		if (c.gameObject.tag == "Player")
			c.transform.parent = null;
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
Ну либо у вас полноценная физика и сила трения сделает всё сама. Либо вы реализуете механизм "примагничивания" и всё что связано так с полом, пол двигает за собой.
Ответ написан
Комментировать
@NIKROTOS
Начинающий программист.
Что-бы двигать юнита вместе с платформой, нужно к вектору движения юнита прибавить вектор движения платформы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы