private void UpdateCameraPosition(bool smooth = true) { if (stage == Stage.Start || stage == Stage.Mode) { camera.SetCenter(0, 0, false); camera.SetSize(2.6f, false); } else if (stage == Stage.Game) { if (boardView != null && boardView.piecesPool.Count() > 0) { float xMin, xMax, yMin, yMax; boardView.BoardSize(out xMin, out xMax, out yMin, out yMax); camera.SetCenter((xMin + xMax) / 2, (yMin + yMax) / 2); camera.SetSize(Mathf.Max(Mathf.Max(xMax - xMin, yMax - yMin) * 0.5f + 1f, +5)); } else { camera.SetCenter(1.558845f, 0); } } else if (stage == Stage.Adventure) { if (boardView != null) { float xMin, xMax, yMin, yMax; boardView.BoardSize(out xMin, out xMax, out yMin, out yMax); camera.SetCenter((xMin + xMax) / 2, (yMin + yMax) / 2, smooth); camera.SetSize(Mathf.Max(Mathf.Max(xMax - xMin, yMax - yMin) * 0.5f + 1f, +5), smooth); } } else if (stage == Stage.AdventureMenu) { float xMin, xMax, yMin, yMax; adventureMenu.BoardSize(out xMin, out xMax, out yMin, out yMax); camera.SetCenter((xMin + xMax) / 2, (yMin + yMax) / 2); camera.SetSize(Mathf.Max(Mathf.Max(xMax - xMin, yMax - yMin) * 0.5f + 1f, +2)); } camera.SetAngle(angle); }