• Как улучшить систему взаимодействия перса со стенами в 2д метроидвании?

    @Altere
    НАЧИНАЮЩИЙ разработчик на Unity
    тут проблема не в том, что механика заранее активирована, а в том самом скрипте передвижения базового. У меня такая же проблема и я понятия не имею, что с этим делать. Короче, твои доп. перки тут не причём, это всё из-за самой ходьбы (да, ходьбы, ведь даже если убрать скрипт для прыжка и врезаться в стену когда в воздухе всё равно прилипнешь)
    Ответ написан
    Комментировать
  • Открытие новых способностей персонажем в 2д игре на Юнити?

    nynceHb
    @nynceHb
    Я бы определил базовый ScriptableObject для способности:
    public abstract class Ability : ScriptableObject
    {
        public abstract void Activate(PlayerController playerController);
        public abstract void Deactivate(PlayerController playerController);
    }


    И затем создавал бы конкретные типы способностей:
    [CreateAssetMenu(fileName = "Double Jump", menuName = "Abilities/Double Jump")]
    public class DoubleJump : Ability
    {
        public override void Activate(PlayerController playerController)
        {
            playerController.MaxJumpCount = 2;
        }
    
        public override void Deactivate(PlayerController playerController)
        {
            playerController.MaxJumpCount = 1;
        }
    }


    Тогда AbilityPickup выглядел бы примерно так:
    [RequireComponent(typeof(PlayerController))]
    public class AbilityPickup : MonoBehaviour
    {
        private PlayerController playerController;
        private List<Ability> activeAbilities = new List<Ability>();
        
        private void Awake()
        {
            playerController = GetComponent<PlayerController>();
        }
    
        private void OnTriggerEnter(Collider collider)
        {
            if (collider.TryGetComponent(out AbilityContainer abilityContainer))
                AddAbility(abilityContainer.Ability);
        }
    
        public void AddAbility(Ability ability)
        {
            ability.Activate(playerController);
            activeAbilities.Add(ability);
        }
    }


    Где то в мире будет лежать объект с компонентом:
    public class AbilityContainer : MonoBehaviour
    {
        [SerializeField] private Ability ability;
        public Ability Ability => ability;
    }
    Ответ написан
    Комментировать
  • Открытие новых способностей персонажем в 2д игре на Юнити?

    @oblakooblako
    Прочитать про архитектуру. MVP, ECS конкретно в юнити. Ознакомиться с различными готовыми библиотеками для инъекций и связывания unirx, zenject.
    Ответ написан
    1 комментарий
  • Создание вкладок для стартового меню игры на Unity?

    B-Erolskiy
    @B-Erolskiy
    Unity Developer
    Объекты на сцене так или иначе будут расположены по вертикальной иерархии (один над или под другим).
    Не вижу проблемы сделать Panel/Canvas на часть экрана, внутрь положить разные блоки, и кнопками выбирать какой открывать.
    Ответ написан
    Комментировать