void RightCollisions() { float directionX = 1; float rayLenght; //if (isBallGame && PlayerThings.rightDir &&futebolPlayer.kicked == true || handVolei.cortou) if (rightRay) { rayLenght = hitLenght + skinWidth; } else { rayLenght = 0.1f + skinWidth; } for (int i = 0; i < horizontalRayCount; i++) { Vector2 rayOrigin = (directionX == -1) ? raycastOrigins.bottomLeft : raycastOrigins.bottomRight; rayOrigin += Vector2.up * (horizontalRaySpacing * i); RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.right * directionX, rayLenght, collisionMask); //Debug.DrawRay(rayOrigin, Vector2.right * directionX, Color.red); if (hit) { if (hit.collider.CompareTag("TV")) { hit.collider.GetComponent <TextBoxActivate>().PlayerHit(); collisions.hitTV = true; } if (hit.collider.CompareTag("Dog")) { dogController.sequestrado = false; dogController.ChangeState("IdleState"); //hit.collider.gameObject.SetActive(false); DogColetaTutorial dogTutorial = hit.collider.GetComponent <DogColetaTutorial>(); dogTutorial.AtivaDog(); } if (hit.collider.CompareTag("Pet")) { if (hit.distance == 0) { collisions.hitDog = true; } } if (hit.collider.CompareTag("AjusteCam")) { CorridaAjustaCamera ajustaCamera = hit.collider.GetComponent <CorridaAjustaCamera>(); //ajustaCamera.cam = cam; ajustaCamera.initialPos = this.gameObject.transform.position; ajustaCamera.playerTransform = this.gameObject.transform; } if (hit.collider.CompareTag("Boost")) { collisions.boostMoto = true; } if (hit.collider.CompareTag("Porta")) { collisions.isDoor = true; PortaManager porta = hit.collider.GetComponent <PortaManager>(); porta.OpenDoor(); return; } if (hit.collider.CompareTag("PortaTutorial")) { collisions.isDoor = true; PortaTutorial porta = hit.collider.GetComponent <PortaTutorial>(); porta.abriPorta = true; return; } if (hit.collider.CompareTag("TextBox")) { hit.collider.GetComponent <TextBoxActivate>().PlayerHit(); } if (hit.collider.CompareTag("Coletavel")) { DestroyColetavel2D coletavel2D = hit.collider.GetComponent <DestroyColetavel2D>(); coletavel2D.PegouColetavel(true); playerThings.PV.RPC("SendOnlineCollisions", RpcTarget.Others); FMODUnity.RuntimeManager.PlayOneShot("event:/SFX/Feedback/Coletaveis/ColetaDoOsso"); Scored(); } if (hit.collider.CompareTag("Moedinha")) { //hit.collider.gameObject.SendMessage("Coleta"); CoinObject coin = hit.collider.GetComponent <CoinObject>(); coin.PegouMoeda(); } if (hit.collider.CompareTag("Carrinho")) { //dogController.Carro(); dogController.ChangeState("CarroState"); hitCarro.Value = false; if (isDogNormal == true) { FMODUnity.RuntimeManager.PlayOneShot("event:/SFX/Feedback/Coletaveis/TransformaDog"); isDogNormal = false; } } if (hit.collider.CompareTag("Pipa")) { //dogController.Pipa(); dogController.ChangeState("PipaState"); hitPipa.Value = false; if (isDogNormal == true) { FMODUnity.RuntimeManager.PlayOneShot("event:/SFX/Feedback/Coletaveis/TransformaDog"); isDogNormal = false; } } if (hit.collider.CompareTag("DogTiro")) { playerThings.StartCoroutine("LevouDogada"); if (isShotRecived) { StartCoroutine(TocaSomTiroDoDog()); } } if (hit.collider.CompareTag("Volei")) { if (PlayerThings.rightDir) { collisions.cortaBola = true; if (isBallKicked) { StartCoroutine(TocaSomChutaBola()); } } if (PlayerThings.leftDir) { collisions.tocouBola = true; if (isBallKicked) { StartCoroutine(TocaSomChutaBola()); } } } if (hit.collider.CompareTag("Futebol")) { if (PlayerThings.rightDir) { collisions.chutouBola = true; if (isBallKicked) { StartCoroutine(TocaSomChutaBola()); } } if (PlayerThings.leftDir) { if (hit.distance == 0) { collisions.tocouBola = true; if (isBallKicked) { StartCoroutine(TocaSomChutaBola()); } } } } if (hit.collider.CompareTag("AI")) { if (PlayerThings.rightDir) { footballFSM = hit.collider.GetComponent <FootballFSMController>(); collisions.canKickBot = true; futebolPlayer.KickBot(footballFSM); } } if (hit.collider.CompareTag("LinhaDeChegada")) { if (hit.distance == 0) { hit.collider.gameObject.GetComponent <LinhaDeChegada>().Colidiu(gameObject); if (motoSpd != null) { motoSpd.CarEngine.stop(FMOD.Studio.STOP_MODE.ALLOWFADEOUT); } } } } } }
void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Prefab1") { curPortaManager = col.transform.GetChild(0).gameObject.GetComponent <PortaManager>(); GameObject go = col.transform.GetChild(0).gameObject; go.SetActive(true); } if (col.tag == "Bounds") { CameraB.Instance.SetBounds(col.GetComponent <BoxCollider2D>()); col.GetComponent <BoundActivate>().SpawnRoom(); } if (col.tag == "Buraco") { //mov = Vector2.zero; fallDirectionX = fallDirectionY = 0f; Vector2 playerLastPos = transform.position; Vector2 buracoPos = col.transform.position; Vector2 difference = playerLastPos - buracoPos; //print("Distância X:" + difference.x + " - Distância Y:" + difference.y); //definir se o player ta mais pro lado do que pra cima e vice versa bool useX() { if (Mathf.Abs(difference.x) > Mathf.Abs(difference.y)) { return(true); } else { return(false); } } bool useY() { if (Mathf.Abs(difference.y) > Mathf.Abs(difference.x)) { return(true); } else { return(false); } } //definir se o ta pra cima ou pra baixo, ou se ta pro lado e pro outro if (useX()) { if (difference.x < 0f) { fallDirectionX = -2f; } else { fallDirectionX = 2f; } } if (useY()) { if (difference.y < 0f) { fallDirectionY = -2f; } else { fallDirectionY = 2f; } } //print("Usar X:" + useX() + " - Usar Y:" + useY()); rgbd.velocity = Vector2.zero; dodgeMov = Vector2.zero; mov = Vector2.zero; canMove = false; isFalling = true; transform.position = col.transform.position; anim.SetTrigger("Fall"); } if (col.tag == "Sword") { int type = col.GetComponent <SwordHolder>().swordType; curSword = DropManager.Instancia.swordsList[type]; UpdateSwordAttributes(); Destroy(col.gameObject); } if (col.tag == "Slime") { print("slime aefkaeflçeafklç"); GetComponent <PlayerHealth>().TakeDamage(1); //Vector2 direction = col.transform.position - transform.position; //ChargeBack(direction * chargebackAmount); } if (col.tag == "TriggerExit") { Vector2 tempPos; switch (col.transform.name) { case "Right": tempPos = new Vector2(transform.position.x + 15f, transform.position.y); StartCoroutine(ChangeRoom_CR(tempPos)); break; case "Left": tempPos = new Vector2(transform.position.x - 15f, transform.position.y); StartCoroutine(ChangeRoom_CR(tempPos)); break; case "Up": tempPos = new Vector2(transform.position.x, transform.position.y + 10f); StartCoroutine(ChangeRoom_CR(tempPos)); break; case "Down": tempPos = new Vector2(transform.position.x, transform.position.y - 10f); StartCoroutine(ChangeRoom_CR(tempPos)); break; default: break; } } }