Exemplo n.º 1
0
        public GameObject CreateNewBlock()
        {
            if (_currentBlock)
            {
                _lastBlock = _currentBlock;
            }

            BlockGenerateData newData       = _blockDatas[UnityEngine.Random.Range(0, _blockDatas.Count)];
            GameObject        newSpawnPoint = newData.spawnPoints[UnityEngine.Random.Range(0, newData.spawnPoints.Count)];

            GameObject newBlock = Instantiate(_blockPrefab, newSpawnPoint.transform.position, Quaternion.identity, _parentForBlocks.transform);

            newBlock.GetComponent <Block>().SetNewData(newData);

            if (_lastBlock)
            {
                float x = newData.MoveDirection == Vector3.right ? newSpawnPoint.transform.position.x : _lastBlock.transform.position.x;
                float z = newData.MoveDirection == Vector3.forward ? newSpawnPoint.transform.position.z : _lastBlock.transform.position.z;

                newBlock.transform.position = new Vector3(x, newSpawnPoint.transform.position.y, z);
            }

            _currentBlock = newBlock;

            _allBlocks.Add(newBlock);
            SetupNewBlock(newBlock);

            onBlockGenerated?.Invoke();

            return(newBlock);
        }
Exemplo n.º 2
0
 public void SetNewData(BlockGenerateData data)
 {
     blockData = data;
 }