Создание и удаление игровых объектовC#

Место общения программистов C#
Ответить
Anonymous
 Создание и удаление игровых объектов

Сообщение Anonymous »

Я внедряю систему лазания по стенам в свою 2D-игру и застрял на некоторых более сложных деталях.
Я думаю, что я бы сделал своего игрока родителем объекта стены, когда он сталкивается с прикрепленным 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»