private void Awake() { if (!inited) { damageable = GetComponent <IDamageable>(); gear = GetComponent <IEquipmentGear>(); backpack = GetComponent <IBackpack>(); controller = GetComponent <BaseController>(); Init(); inited = true; damageable.Init(gear, backpack, controller, damageable); backpack.Init(gear, backpack, controller, damageable); gear.Init(gear, backpack, controller, damageable); controller.Init(gear, backpack, controller, damageable); } }