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); }
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); } }