В Сусуватари, малкият призрак от сажди събира въглища в стаята. Но за да се гарантира, че пещта се активира само след като всяко едно парче въглища е намерено, простото им преброяване в системата на играча не е достатъчно. Тук влиза в действие комуникацията между играча и стаята. PlayerCoalDetector докладва за всяко събрано парче на... RoomCoalManager.
Защо докладването е по-добро от самото броене в плейъра
Ако играчът брои само собствените си въглища, стаята не знае колко първоначално са съществували. Следователно, пещта не може да провери дали всичко действително е събрано.
Управителят обаче знае:
- общото количество въглища в стаята
- броят на вече събраните обекти
Това създава централен контролен орган.
Задачата на PlayerCoalDetector
PlayerCoalDetector има две задачи:
- Пусни звук
- броене на въглища
Сега се добавя трета задача:
Той информира RoomCoalManager за всяко успешно вземане.
Техническото изпълнение
Първо, PlayerCoalDetector получава препратка към мениджъра:
public RoomCoalManager roomManager;
В допълнение към увеличаването на инвентара, мениджърът бива уведомен, когато артикулите са събрани:
private void OnTriggerEnter2D(Collider2D other)
{
if (!other.CompareTag("Kohle")) return;
coalAmount++;
if (roomManager != null)
roomManager.RegisterCoalPickup();
Destroy(other.gameObject);
}
Всеки събран обект увеличава две стойности:
- въглищата в инвентара на Сусуватари
- въглищата, събрани в стаята
Защо това разделение е важно
Сусуватари се грижи за инвентара си.
Стаята се грижи за собственото си управление на ресурсите.
Нито една от системите не поема отговорност за другата. Тази ясна структура гарантира, че:
- така че фурната може да се провери правилно, за да се види дали всичко е събрано.
- новите пространства могат да имат свои собствени мениджъри
- Различни видове ресурси могат лесно да бъдат добавени по-късно.
Установяване на връзка в редактора
В Инспектор, дърпате RoomCoalManager Просто въведете GameObject в полето roomManager на PlayerCoalDetector. Това създава препратка между двата компонента.
Като алтернатива, препратката може да се търси автоматично в Awake, но ръчното присвояване е по-прозрачно и контролирано.
Какво означава това за геймплея на Susuwatari
Тази логика на отчитане осигурява контролиран напредък. Susuwatari може да достави въглищата до пещта само след като помещението се счита за напълно празно.
Това предотвратява преки пътища и осигурява ясна цел за ниво.
Заключение
PlayerCoalDetector не само обработва събирането, но и комуникацията с RoomCoalManagerВсяко вземане на предмет се отчита, което позволява на стаята да знае статуса му. Тази модулна архитектура прави механиката за събиране на Susuwatari стабилна, прозрачна и лесно разширяема.
Още статии за игри и поезия: Pendulo Studios
