예제 #1
0
    // Update is called once per frame
    void Update()
    {
        if (skillButton.getUsingSkill() && Input.GetMouseButtonDown(0))
        {
            Vector2        pos  = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Ray2D          ray  = new Ray2D(pos, Vector2.zero);
            RaycastHit2D[] hits = Physics2D.RaycastAll(ray.origin, ray.direction);

            foreach (var hit in hits)
            {
                if (hit.collider.gameObject != gameObject) //해당 물병이 터치되었는지 확인
                {
                    continue;
                }

                if (playerImageController.getPlayingChr() == 0)                                 //염동력자의 경우
                {
                    if (!redAura.activeSelf && usingSkillNum < gameResourceValue.GetSkillLV(0)) //오러가 꺼져 있고 오러가 켜져있는 물병의 개수가 업그레이드 수 미만일 때
                    {
                        usefullOperation.FadeIn(redAura.GetComponent <SpriteRenderer>());
                        usingSkillNum++;
                    }
                    else if (redAura.activeSelf) //오러가 켜져있을 때
                    {
                        usefullOperation.FadeOut(1, redAura.GetComponent <SpriteRenderer>());
                        usingSkillNum--;
                    }
                }
                else if (playerImageController.getPlayingChr() == 2)                                //빙결자의 경우
                {
                    if (!freezeRange.activeSelf && usingSkillNum < gameResourceValue.GetSkillLV(2)) // 빙결 범위 표시기가 꺼져있고 빙결 범위 표시기가 쳐져 있는 개수가 업그레이드 수 미만일 때
                    {
                        usefullOperation.FadeIn(freezeRange.GetComponent <SpriteRenderer>());
                        rb.AddForce(new Vector2(0.01f, 0)); //빙결 범위 이미지를 움직이지 않으면 구조물 인식이 안 됨.
                        usingSkillNum++;
                    }
                    else if (freezeRange.activeSelf)
                    {
                        usefullOperation.FadeOut(1, freezeRange.GetComponent <SpriteRenderer>());
                        usingSkillNum--;
                    }
                }

                break;
            }
        }
    }
예제 #2
0
    private void Update()
    {
        if (padDirection.getDirection().x <= 0)
        {
            key = 1;
        }
        if (padDirection.getDirection().x > 0)
        {
            key = -1;
        }

        if (!skillButton.getUsingSkill())
        {
            transform.localScale = new Vector3(key * 0.4f, 0.4f, 1);                              //필살기 사용중이 아니면 패드 위치에 따라 캐릭터가 향하는 방향이 바뀜
        }
        bottlePosition = transform.GetChild(playingChr).transform.position;
    }
예제 #3
0
    // Update is called once per frame
    void Update()
    {
        transform.position = playerImageController.getBottlePosition();

        if (padStrength.isTouch || padStrength.isThrowing || skillButton.getUsingSkill() || bottleSelectController.bottleController.isSuperPowerAvailabe)
        {
            transform.GetChild(0).gameObject.SetActive(false);
        }
        else if (padDirection.getIsTouch())
        {
            transform.GetChild(0).gameObject.SetActive(true);
            double angle = Mathf.Atan2(padDirection.getDirection().y, padDirection.getDirection().x) * (180.0 / Mathf.PI) + 185;
            if (padDirection.getDirection().magnitude == 0)
            {
                this.transform.rotation = Quaternion.Euler(0, 0, 0);                                             //드래그를 안 했을 시 회전하지 않는다.
            }
            else
            {
                this.transform.rotation = Quaternion.Euler(0, 0, (float)angle);  //조이스틱의 방향에 따라 방향을 변경
            }
        }
    }