Я думаю, что я бы сделал своего игрока родителем объекта стены, когда он сталкивается с прикрепленным 2D-коллайдером. Когда игрок сталкивается со стеной, он становится дочерним элементом этой стены и ограничен перемещением по стене только вверх и вниз. Когда игрок прыгает или достигает вершины, он больше не является ребенком стены. Но у игрока есть возможность прыгнуть в любую точку стены, на которую он приземлился, и остаться в этой точке.
Сейчас я проработал родительскую часть с помощью следующего кода (этот код прикреплен к плееру):
Код: Выделить всё
void OnCollisionEnter2D(Collision2D collision)
{
if(collision.gameObject.tag == "Wall")
{
this.transform.parent = collision.transform;
Debug.Log("hit a wall");
}
}
Для первой части (отмена родительского контроля), я полагаю, мне нужно будет использовать следующий код:
Код: Выделить всё
void OnCollisionExit2D(Collision2D collision)
{
if(collision.gameObject.tag == null)
{
this.transform.parent = null;
Debug.Log("not hitting anythin");
}
}
Я также не знаю, с чего начать другую проблему: заставить игрока прилипнуть к той части стены, с которой он соединяется. Может ли кто-нибудь помочь мне с моими проблемами?
Подробнее здесь: https://stackoverflow.com/questions/223 ... me-objects