예제 #1
0
 public void InitializeFigure(int figureIndex, Transform[] partsTransform, FigureStruct figureStruct, float scale)
 {
     this.figureIndex    = figureIndex;
     this.scale          = scale;
     this.figureStruct   = figureStruct;
     this.partsTransform = partsTransform;
     figureCellSize      = (float)3 / DataStorage.FieldSize.x;
     figureTransform     = GetComponent <Transform>();
     startPosition       = new Vector3(
         figureTransform.localPosition.x - (figureStruct.figureSize.x - 1) * miniFigureCellSize / 2,
         figureTransform.localPosition.y - (figureStruct.figureSize.y - 1) * miniFigureCellSize / 2,
         figureTransform.localPosition.z);
     figureTransform.localPosition = startPosition;
     boxCollider = GetComponent <BoxCollider2D>();
     UpdateMiniFigureBoxCollider();
     draggingOffset = new Vector3(figureCellSize * (-(figureStruct.figureSize.x - 1)) / 2, figureCellSize / 2 + 0.6f, 0);
 }
예제 #2
0
    private void SpawnFigure(int figureIndex, FigureStruct figureStruct, float spawnDelay)
    {
        figures[figureIndex] = Instantiate(miniFigurePrefab, spawnPositions[figureIndex], Quaternion.identity).GetComponent <Figure>();

        Transform[] partsTransform = new Transform[figureStruct.partsPositions.Length];

        for (int i = 0; i < figureStruct.partsPositions.Length; i++)
        {
            partsTransform[i]               = Instantiate(miniFigurePartPrefab).GetComponent <Transform>();
            partsTransform[i].parent        = figures[figureIndex].transform;
            partsTransform[i].localPosition = new Vector3(cellSize * figureStruct.partsPositions[i].x, cellSize * figureStruct.partsPositions[i].y, 0);
        }
        float destScale = 1;

        if (DataStorage.CountOfFigures > 3)
        {
            destScale = 0.9f;
        }
        figures[figureIndex].InitializeFigure(figureIndex, partsTransform, figureStruct, destScale);
        figures[figureIndex].transform.localScale = new Vector2(0, 0);
        StartCoroutine(ShowFigure(figureIndex, spawnDelay, destScale));
    }