public void Solution(PuzzlePiece piece) { if (routine != null) { return; } piece.Attach(solutionSocket.position); if (piece.solution) { audioCtrl.source.PlayOneShot(canvas.right); routine = StartCoroutine(EndPuzzle()); } else { piece.Cancel(); ctrl.ApplyPenalty(); } }