예제 #1
0
 public void Initialize(BlockInstanceManager instanceManager, TetrominoData data)
 {
     this.instanceManager = instanceManager;
     this.data            = data;
     InitPositions();
     InitBlocks(instanceManager);
 }
예제 #2
0
        void InitBlocks(BlockInstanceManager instanceManager)
        {
            if (blocks == null || blocks.Length != data.BlockCount)
            {
                blocks = new Block[data.BlockCount];
            }

            for (var i = 0; i < data.BlockCount; i++)
            {
                blocks[i] = instanceManager.StartUseBlock();
                blocks[i].ChangeColor(data.Color);
            }
        }
예제 #3
0
        // Start is called before the first frame update
        void Start()
        {
            instanceManager = GetComponent <BlockInstanceManager>();

            if (toGenerate != null)
            {
                var origin = position == null ? Vector3.zero : position.position;
                for (var i = 0; i < toGenerate.Length; i++)
                {
                    var pos       = origin + offset * i;
                    var tetromino = new Tetromino(instanceManager, toGenerate[i]);
                    tetromino.MoveTetromino(pos);
                }
            }
        }
예제 #4
0
 public Tetromino(BlockInstanceManager instanceManager, TetrominoData data)
 {
     Initialize(instanceManager, data);
 }