private void OnShapeCreated(GameShape shape)
 {
     shape.RegisterOnStateChanged(OnShapeStateChanged);
     if (shape.Spawner.AttachedPipe != null)
     {
         shape.Spawner.AttachedPipe.SetState(GamePipeState.WRONG);
     }
 }
 private void InitShapeView(GameShape gameShape, GameShapeController gameShapeController)
 {
     shapeController = gameShapeController;
     shape           = gameShape;
     animator        = gameObject.GetComponent <Animator>();
     animator.speed  = gameShape.SpawnSpeed;
     gameShape.RegisterOnPositionUpdated(OnPositionUpdated);
     gameShape.RegisterOnStateChanged(OnStateChanged);
 }
Beispiel #3
0
    protected void SpawnShape(GameSpawner spawner = null)
    {
        if (spawner == null)
        {
            int spawnerIndex = UnityEngine.Random.Range(0, spawners.Length);
            spawner = spawners[spawnerIndex];
        }

        GameShapeType newShapeType = spawner.GetRandomShapeType();

        GameShape shape = shapeController.CreateShape(newShapeType, spawner, speed, spawnSpeed);

        spawner.CurrentShapes++;

        shape.RegisterOnStateChanged(CallShapeStateChanged);

        if (onShapeCreated != null)
        {
            onShapeCreated(shape);
        }
    }