//1Fに1回呼ばれる public Vector2?GetInputPoint() { if (CM.isUpdate()) { Hashtable ht = CM.Get(); return(new Vector2((float)ht["x"], (float)ht["y"])); } return(null); }
void Update() { // 画面に弾がヒットした場合 isUpdate() はtrueを返す。 if (_coordinateManager.isUpdate() && !_isGameEnd) { // CoordinateManagerから情報を取得。 Hashtable res = _coordinateManager.Get(); Vector3 pos = new Vector3((float)res["x"], (float)res["y"], 0f); // 受け取った座標をRayに変換 Ray ray = Camera.main.ScreenPointToRay(pos); // Raycast処理 RaycastHit hit = new RaycastHit(); if (Physics.Raycast(ray, out hit)) { GameObject hitObj = hit.collider.gameObject; PlayEffect(pos); if (hitObj.name == "Target") { _targetCount--; } _uiView.SetTargetCount(_targetCount); if (_targetCount <= 0) { _isGameEnd = true; _uiView.DisplayGameEnd(); // scoreをGameControllerに送信。 SendScore(); // ゲームの終わりを通知し、メニュー画面へ _gameController.GameEnd(); } } } }