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);
                            }
                        }
                    }
                }
            }
        }
示例#2
0
    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;
            }
        }
    }