예제 #1
0
 /// <summary>
 /// Pushes a block in the building.
 /// </summary>
 /// <param name="block"></param>
 /// <returns>The total block count</returns>
 public int PushBlock(ABlock block)
 {
     block.transform.SetParent(transform);
     for (int i = 0; i < block.transform.childCount; ++i)
     {
         block.transform.GetChild(i).transform.localScale = Vector3.one * _blockScale;
     }
     block.SetBlockPosition(new Vector3(
                                /*_startPosition.x +*/ _buildingOffsetHorizontal + (block.GetWidth() * (_blocks.Count % _width)),
                                /*_startPosition.y +*/ (block.GetHeight() * (_blocks.Count / _width)),
                                _startPosition.z));
     //block.transform.localPosition = new Vector3(
     //    _startPosition.x + (block.GetWidth() * (_blocks.Count % _width)),
     //    _startPosition.y + (block.GetHeight() * (_blocks.Count / _width)),
     //    _startPosition.z);
     _blocks.Add(block);
     if (_blocks.Count % _width == 0)
     {
         GetComponent <AudioSource>().Play();
         _height += block.GetHeight();
     }
     return(_blocks.Count);
 }
예제 #2
0
 public override float GetHeight()
 {
     return(_leftBlock?.GetHeight() ?? 0 + _rightBlock?.GetHeight() ?? 0);
 }