コード例 #1
0
    public void ResetRoad()
    {
        QuadPresenter firstQuad = _quads.Peek();

        Vector2 newQuadPos = GetRandomDirection();

        firstQuad.QuadModel.Position.Value = newQuadPos;
        firstQuad.gameObject.SetActive(true);
        RearrangeQuad(firstQuad);

        if (!CanSpawnDiamond())
        {
            return;
        }

        DiamondPresenter diamond = ResetDiamondPosition();

        if (diamond != null)
        {
            diamond.DiamondModel.Position.Value = newQuadPos;
            diamond.gameObject.SetActive(true);
            diamond.transform.SetParent(firstQuad.transform);
        }
        else
        {
            DiamondPresenter diamondPresenter = _factory.Create(newQuadPos);
            diamondPresenter.transform.SetParent(firstQuad.transform);
            AddDiamond(diamondPresenter);
        }
    }
コード例 #2
0
    private void GenerateDiamonds(Vector2 position, Transform parentTransform)
    {
        if (!_roadModel.CanSpawnDiamond())
        {
            return;
        }

        DiamondPresenter diamondPresenter = _diamondFactory.Create(position);

        diamondPresenter.transform.SetParent(parentTransform);
        _roadModel.AddDiamond(diamondPresenter);
    }
コード例 #3
0
    public DiamondPresenter ResetDiamondPosition()
    {
        DiamondPresenter diamond = _diamonds.Peek();

        if (!diamond.gameObject.activeInHierarchy)
        {
            AddDiamond(_diamonds.Dequeue());
            return(diamond);
        }
        else
        {
            return(null);
        }
    }
コード例 #4
0
 public void AddDiamond(DiamondPresenter diamond)
 {
     _diamonds.Enqueue(diamond);
 }