//////////////////////////////////////////////////////////////////////////////////// public override void OnTouchEndedAnywhere() { // on vérifie si on a appuyé sur le bouton de menu RetournerMenu(); #region DIALOGUES // quete 1 if (GameManagerJardin.curGameState == GameManagerJardin.GameState.queteJessicaP1) { ChangeState(GameManagerJardin.GameState.queteJessicaP1, GameManagerJardin.GameState.planterP1); AfficherBoutons(); } // dialogue 1 de la tansition else if (GameManagerJardin.curGameState == GameManagerJardin.GameState.dialogueTransition1) { ChangeState(GameManagerJardin.GameState.dialogueTransition1, GameManagerJardin.GameState.transition); } // TEMPORARIRE // tansition else if (GameManagerJardin.curGameState == GameManagerJardin.GameState.transition) { ChangeState(GameManagerJardin.GameState.transition, GameManagerJardin.GameState.dialogueTransition2); } // dialogue 2 de la tansition 2 else if (GameManagerJardin.curGameState == GameManagerJardin.GameState.dialogueTransition2) { ChangeState(GameManagerJardin.GameState.dialogueTransition2, GameManagerJardin.GameState.queteJessicaP2); } // quete 2 else if (GameManagerJardin.curGameState == GameManagerJardin.GameState.queteJessicaP2) { ChangeState(GameManagerJardin.GameState.queteJessicaP2, GameManagerJardin.GameState.planterP2); AfficherBoutons(); } // score else if (GameManagerJardin.curGameState == GameManagerJardin.GameState.score) { // on check si on a appuyer sur le bouton rejouer Rejouer(); } #endregion #region PLANTATION on touch ended // si on touche une parcelle else if ((GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP1) || (GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP2)) { // on vérifie si on a appuyé sur le bouton de validation ValiderLegumes(); // on vérifie si on a appuyé sur le bouton d'info AfficherLegumesPlantes(); ray = Camera.main.ScreenPointToRay(Input.touches[0].position); // si on a termine un touch en dehors d'une parcelle, sur le jardin if (Physics.Raycast(ray, out hit) && (hit.collider.gameObject.tag == "FloorJardin")) { // si on etait en train de dragger un legume if (dragging) { AnnulerGraine(); } /* * // on deselectionne la parcelle couremment selectionne * else if (selectedParcelle) { * selectedParcelle.GetComponent<Parcelle>().AEteDeSelectionne(); * selectedParcelle = null; * NePasAfficherUILegumes(); * } */ } // si on a termine un touch sur une parcelle et qu'on est pas en train de tourner la camera else if (Physics.Raycast(ray, out hit) && (hit.collider.gameObject.layer == parcelles) && !rotatingCamera) { GameObject parcelle = hit.collider.gameObject; Parcelle scriptParcelle = parcelle.GetComponent <Parcelle>(); // si on termine un touch sur une parcelle selectionne if (scriptParcelle.isSelected) { // faire 3 petits swipe pour creuser if (scriptParcelle.GetCurState() == Parcelle.ParcelleState.creuser) { // swipe action #region swipe ended if (((fp.x - lp.x) > dist) || ((fp.x - lp.x) < -dist) || ((fp.y - lp.y) < -dist) || ((fp.y - lp.y) > dist)) { scriptParcelle.IncrementDigged(); scriptParcelle.AEteCreuse(); } #endregion if (scriptParcelle.IsFullyDigged()) { AfficherUILegumes(); } } // on plante la graine, faire un drag and drop // changement d'etat traité dans AjoutLegume(gTex), Appel dans TouchJardin else if (scriptParcelle.GetCurState() == Parcelle.ParcelleState.graine) { #region drag ended if (dragging && Input.touchCount == 1) { // si le legume a ete plante if (AjoutLegume(legumeDragged)) { ValiderGraine(); } else { AnnulerGraine(); } } #endregion } } // si on termine un touch sur une parcelle non selectionne else { // si on etait en train de dragger, on annule le placement de la graine if (dragging && Input.touchCount == 1) { AnnulerGraine(); } // sinon on a termine le touch sur une parcelle non selectionne else { if (selectedParcelle) { selectedParcelle.GetComponent <Parcelle>().AEteDeSelectionne(); NePasAfficherUILegumes(); } // la nouvelle parcelle selectionné est celle qu'on a touché selectedParcelle = parcelle; selectedParcelle.tag = parcelle.tag; scriptParcelle.AEteSelectionne(); // si on reselectionne une parcelle qui attend une graine if (scriptParcelle.GetCurState() == Parcelle.ParcelleState.graine) { AfficherUILegumes(); } } } //print (hit.collider.tag + " " + scriptParcelle.GetCurState() + " " + scriptParcelle._legume); } } #endregion }
//////////////////////////////////////////////////////////////////////////////////// public override void OnTouchBeganAnywhere() { #region PLANTATION on touch began // si on touche une parcelle if ((GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP1) || (GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP2)) { ray = Camera.main.ScreenPointToRay(Input.touches[0].position); #region swipe begin if (Physics.Raycast(ray, out hit) && (hit.collider.gameObject.layer == parcelles)) { GameObject parcelle = hit.collider.gameObject; Parcelle scriptParcelle = parcelle.GetComponent <Parcelle>(); if (scriptParcelle.isSelected && scriptParcelle.GetCurState() == Parcelle.ParcelleState.creuser) { // si on commence le swipe sur la parcelle selectionne if (Input.touchCount == 1 && selectedParcelle && selectedParcelle.tag == parcelle.tag) { fp = Input.GetTouch(0).position; lp = Input.GetTouch(0).position; } } } #endregion #region drag begin if (selectedParcelle) { if (selectedParcelle.GetComponent <Parcelle>().GetCurState() == Parcelle.ParcelleState.graine) { if (Input.touchCount == 1) { if ((carotte.HitTest(Input.GetTouch(0).position))) { BeginDrag(carotte, hit.point); } else if (tomate.HitTest(Input.GetTouch(0).position)) { BeginDrag(tomate, hit.point); } else if (choux.HitTest(Input.GetTouch(0).position)) { BeginDrag(choux, hit.point); } else if (aubergine.HitTest(Input.GetTouch(0).position)) { BeginDrag(aubergine, hit.point); } else if (patate.HitTest(Input.GetTouch(0).position)) { BeginDrag(patate, hit.point); } else if (oignon.HitTest(Input.GetTouch(0).position)) { BeginDrag(oignon, hit.point); } } } } #endregion } #endregion }
//////////////////////////////////////////////////////////////////////////////////// public override void OnTouchMovedAnywhere() { #region PLANTATION on touch moved if ((GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP1) || (GameManagerJardin.curGameState == GameManagerJardin.GameState.planterP2)) { ray = Camera.main.ScreenPointToRay(Input.touches[0].position); #region Camera rotate // si on a termine un touch en dehors d'une parcelle, sur le jardin if (Physics.Raycast(ray, out hit) && (hit.collider.gameObject.tag == "FloorJardin")) { if (!dragging) { RotateCamera(); // si on est train d'arroser on veut que l'arrosoir reste face a la camera if (selectedParcelle && selectedParcelle.GetComponent <Parcelle>().GetCurState() == Parcelle.ParcelleState.arrosage) { arrosoir.eulerAngles = Camera.main.transform.eulerAngles; } } } #endregion #region drag moved // si on est en train de dragger, on met a jour la position de la graine if (dragging) { graineClone.position = new Vector3(hit.point.x, 1, hit.point.z); } #endregion // si on bouge sur une parcelle if (Physics.Raycast(ray, out hit) && (hit.collider.gameObject.layer == parcelles)) { GameObject parcelle = hit.collider.gameObject; Parcelle scriptParcelle = parcelle.GetComponent <Parcelle>(); // si on a une parcelle selectionné et que la parcelle touché est la parcelle sélectionné if (selectedParcelle && selectedParcelle.tag == parcelle.tag) { #region swipe moved if (scriptParcelle.GetCurState() == Parcelle.ParcelleState.creuser) { if (Input.touchCount == 1) { lp = Input.GetTouch(0).position; } } #endregion } #region Camera rotate else { if (!dragging) { RotateCamera(); } } #endregion } } #endregion }