private void Place(InputAction.CallbackContext ctx)
        {
            _ability.Disable();
            _movement["Ability"].Enable();

            _createdInteraction.Interact();

            _createdInteraction.OnPlaced();
            _createdObject      = null;
            _createdInteraction = null;
        }
        public override void Interact()
        {
            if (!canUseInteraction)
            {
                return;
            }
            interaction.Interact(transform.position);
            var create = (CreationInteraction)interaction;

            _createdObject      = create.createdObject;
            _createdInteraction = _createdObject.GetComponent <PlayerCreationInteraction>();
            InitMovingObject();
        }
        public void Initialize()
        {
            input     = GetComponent <PlayerInputSystem>();
            _ability  = input.Ability;
            _movement = input.Player;
            _ability.Disable();
            _movement["Interact"].Disable();
            _movement["Ability"].performed += ctx => Interact();
            _ability["Place"].performed    += Place;
            _ability["Cancel"].performed   += Cancel;
            settings = input.Settings;

            if (_createdObject)
            {
                Destroy(_createdObject);
                _createdInteraction = null;
                _createdObject      = null;
            }
        }