public GameController(CoreData coreData, Canvas menuCanvas) { _menuCanvas = menuCanvas; _core = coreData; _disposables.Add( new GameObject("Updater") .AddComponent <Updater>() ); _canvas = new GameObject("Canvas").AddComponent <Canvas>(); _canvas.renderMode = RenderMode.ScreenSpaceOverlay; _canvas.gameObject.AddComponent <GraphicRaycaster>(); var scaler = _canvas.gameObject.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.matchWidthOrHeight = 0.5f; _canvas.transform.localPosition = Vector3.zero; var coinText = new GameObject("CoinCounter").AddComponent <Text>(); coinText.Adjust(200, 100, _canvas.transform, new Vector2( -Screen.width / 2 + coinText.rectTransform.rect.width, Screen.height / 2 - coinText.rectTransform.rect.height / 2), new Vector2(0.0f, 1.0f), new Vector2(0.0f, 1.0f)); coinText.alignment = TextAnchor.UpperLeft; _coinCounterController = new CounterController( coinText, "Coin" ); _coinCounterController.Load(); var scoreText = new GameObject("ScoreCounter").AddComponent <Text>(); scoreText.Adjust(200, 100, _canvas.transform, new Vector2( Screen.width / 2 - scoreText.rectTransform.rect.width, Screen.height / 2 - scoreText.rectTransform.rect.height / 2), new Vector2(1.0f, 1.0f), new Vector2(1.0f, 1.0f)); scoreText.alignment = TextAnchor.UpperRight; _scoreCounter = new CounterController(scoreText, "Score"); _disposables.Add(_coinCounterController); _disposables.Add(_scoreCounter); _disposables.Add(_logController); _disposables.Add(_knifeController); CreatingLevel(); }