public void Open(Vector2?position = null)
        {
            var instantiateInventory = InstantiateInventory();

            Transform = instantiateInventory.transform;
            PlaceTransform(position);

            _inventoryComponent = InventoryComponent.GetInventoryComponent(instantiateInventory.transform);
            _inventoryComponent.DataInventory.NameInstance = _nameInventory;

            _inventoryBinding.Bind(_inventoryComponent);

            IsOpen = true;
        }
        public InventoryOpenCloseObject(GameObject prefabWithInventory,
                                        IEnumerable <DataEntity> dataEntitiesForLoad = null,
                                        string nameInventory = NameInventoryDefault)
        {
            _prefabWithInventory = prefabWithInventory;
            _nameInventory       = nameInventory;
            var inventoryComponent = InventoryComponent.GetInventoryComponent(prefabWithInventory.transform);

            CheckInventoryOnScene(inventoryComponent);

            _inventoryBinding = InventoryBindingFactory.Create(inventoryComponent, dataEntitiesForLoad);
            _inventoryBinding.ChangeState.AddListener(state =>
            {
                if (state == State.UnBind)
                {
                    ProcessClose();
                }
            });
        }