public ShowGuiTouchAction(BasicBuildActionsGUI Default, Building Build,TouchedObject tb, BasicBuildActionsGUI BuildingActionGUI, BasicBuildActionsGUI ActionGUIConstruction) { this.Default = Default; this.tb = tb; this.Build = Build; this.BuildingActionGUI = BuildingActionGUI; this.ActionGUIConstruction = ActionGUIConstruction; }
// 점수 계산 void CalcResult() { // 맞은 적구 판단 // 수구는 최초에 캐싱된 하나만 인정한다. PlayerBallController PC = CueBall.GetComponent <PlayerBallController>(); if (PC != null) { List <GameObject> TouchedObjects = PC.GetTouchedObjectsList(); int TouchedBalls = 0; int TouchedWalls = 0; bool bBankShot = false; float Score = Score_Miss; foreach (GameObject TouchedObject in TouchedObjects) { if (TouchedObject == null) { continue; } // 적구 타격 먼저 판단 if (TouchedObject.CompareTag("Ball")) { TouchedBalls++; // 첫 적구 터치 시 가락 확인 if (TouchedBalls == 1 && TouchedWalls >= 3 && bBankShot == false) { bBankShot = true; } // 적구 타격 완료 시 계산 완료 if (TouchedBalls >= ObjectBalls.Count) { // 성공 시 턴 증감 계산 if (bBankShot) { Score = Score_BankShot; } else if (TouchedWalls >= 3) { Score = Score_3Cushion; } else { Score = Score_Success; } break; } } // 쿠션 판단 if (TouchedObject.CompareTag("Wall")) { TouchedWalls++; } } // 실패에 대한 턴 증감 계산 if (Score == Score_Miss && TouchedBalls > 0) { Score = Score_Save; } // 잔여 턴 계산 Turn = Mathf.Min(Turn + Score, MaxTurn); Debug.Log("Result ----"); Debug.Log("Score : " + Score); Debug.Log("Touched Balls : " + TouchedBalls); Debug.Log("Touched Walls : " + TouchedWalls); Debug.Log("Bank Shot : " + bBankShot); Debug.Log("Remain Turn : " + Turn); } if (Turn > 0.0f) { SetTurnState(ETurn.Action); } }
private void MatchTileTouched(TouchedObject touchedObject) { matchTileTouchedCommand.touchedObject = touchedObject; matchTileTouchedCommand.Execute(); }
public void setTouchedObject(TouchedObject TObject) { _TouchedObject = TObject; }
void OnCollisionEnter(Collision collisionInfo) { GameObject touched = collisionInfo.collider.gameObject; if (collisionInfo.collider.tag == objectifTag) { touched.GetComponent <Collider>().enabled = false; if (FindObjectOfType <GameManager>().difficult == true) { FindObjectOfType <playerMovement>().Boost(); } Debug.Log("We hit the objectif !"); // Augmenter le score de 1 ! FindObjectOfType <GameManager>().actualScore += 1f; FindObjectOfType <AudioManager>().Play("Dissolution"); //Fais disparaitre l'objet disappearObject(touched); } else { GameObject touchedFalse = collisionInfo.collider.gameObject; if (touchedFalse.name != "Plane") { //Joue l'animation d'explosion touchedFalse.GetComponent <explosion>().explosionObj.GetComponent <VisualEffect>().Play(); //Augmente l'erreur +1 FindObjectOfType <GameManager>().error += 1f; //Joue le son FindObjectOfType <AudioManager>().Play("Explosion"); //Fais disparaitre l'objet disappearObject(touchedFalse); } } /*if(collisionInfo.collider.tag == "obstacle") * { * Debug.Log("We hit an obstacle !"); * movement.enabled = false; * FindObjectOfType<GameManager>().EndGame(); * }*/ void disappearObject(GameObject TouchedObject) { Renderer mat = collisionInfo.collider.gameObject.GetComponent <Renderer>(); StartCoroutine(ChangeValue(0f, 1f, 0.25f, mat, TouchedObject)); } IEnumerator ChangeValue(float v_start, float v_end, float duration, Renderer v_mat, GameObject TouchedObject) { float elapsed = 0.0f; while (elapsed < duration) { value = Mathf.Lerp(v_start, v_end, elapsed / duration); elapsed += Time.deltaTime; v_mat.material.SetFloat("Vector1_A5850407", value); yield return(null); } value = v_end; v_mat.material.SetFloat("Vector1_A5850407", value); TouchedObject.SetActive(false); value = 0f; } }