コード例 #1
0
        private void OnBlockAdded(IBlockModel block)
        {
            var levelPos = ComputeGhostPosition(block);
            var worldPos = _levelViewTransform.TransformPosition(levelPos);

            _rotationAnimator.StopAnimation(_ghostBlockView);
            _movementAnimator.StopAnimation(_ghostBlockView);
            _ghostBlockView?.Dispose();
            _ghostBlockView = _blockViewBuilder.BuildView(block);
            _ghostBlockView.SetMaterial(_ghostMaterial);
            _ghostBlockView.Position = worldPos;
            _ghostBlockView.Rotation = block.Rotation;

            block.OnPositionChanged += UpdateGhostPositionRotation;
            block.OnRotationChanged += UpdateGhostPositionRotation;
        }
コード例 #2
0
        private void OnBlockRemoved(IBlockModel block)
        {
            var view = _blockToView[block];

            _rotationAnimator.StopAnimation(view);
            _movementAnimator.StopAnimation(view);
            view.Dispose();
            _blockToView.Remove(block);
            Unsubscribe(block);
        }