コード例 #1
0
ファイル: Game_Manager.cs プロジェクト: kannas2/kannas2
    void Update()
    {
        Event_loop();

        //타 클래스 업데이트.
        str_Event_Mag.Event_Update();
        str_Camera_Mag.Camera_Update();

        //플레이어 오브젝트와 자동차 오브젝트의 거리 계산.
        c_distance = Vector2.Distance(str_Character.transform.position, str_ride_car.transform.position);
        //플레이어 오브젝트와 쓰래기통의 거리 계산.
        t_distance = Vector2.Distance(str_Character.transform.position, obj_trash.transform.position);

        //거리에 따라 true 와 false를 update해주는.
        car_check = if_check(c_distance);

        //쓰래기통.
        trash_check = if_check(t_distance);

        //캐릭터가 ON일 경우.
        if (char_update == true)
        {
            str_Character.Character_Update();

            //camera set
            str_Camera_Mag.player_camera_set(str_Character.transform);
        }
        //자동차가 ON일 경우.
        if (ride_car_update == true)
        {
            str_ride_car.ride_car_Update();

            //camera set
            str_Camera_Mag.player_camera_set(str_ride_car.transform);
        }

        if (Input.anyKeyDown)
        {
            if (GameObject.Find("how_to_play"))
            {
                GameObject how = GameObject.Find("how_to_play");
                Destroy(how);
                if (Input.GetKeyDown(KeyCode.F))
                {
                    return;
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.F) && F_key_ == true)
        {
            //쓰래기 버리는 체크.
            if (trash_check)
            {
                //아이스크림을 안 먹었을경우.
                if (GameObject.Find("Player_ice_cream") && ice_cream == false)
                {
                    ice_cream             = true;
                    spriteRenderer.sprite = sprite_trash_con;

                    //ice_cream_eat_effect
                    AudioSource.PlayClipAtPoint(Effect_Audio[0], transform.position);

                    return;
                }

                if (GameObject.Find("Player_ice_cream"))
                {
                    GameObject trash = GameObject.Find("Player_ice_cream");
                    Destroy(trash);
                    steel_down = true;
                    //변경된 텍스쳐 지워주는걸로.
                }
                shoot_ = false; //쓰래기를 버렸으니 던지지 못하게.
                return;         //조건이 맞으면 밖으로 나가야함 쓰래기 던지는 조건 때문에.
            }

            if (ride_car_update == false)
            {
                //거리 1.0f보다 작을 경우.
                if (car_check)
                {
                    //차를 탑승.
                    str_Character.GetComponent <Renderer>().enabled = false;

                    //car_ride effect sound
                    str_sound_Mag.PlayEffect(5);

                    //업데이트 교환.
                    ride_car_update = true;
                    char_update     = false;

                    eat_ice_cream = false;
                    return;
                }
            }
            else
            {
                AudioSource.PlayClipAtPoint(Effect_Audio[2], transform.position);
                //차에서 내림
                str_Character.GetComponent <Renderer>().enabled = true;

                //캐릭터가 차량에서 내릴경우 시작할 위치.
                str_Character.transform.position = new Vector3(str_ride_car.transform.position.x + 1.0f,
                                                               str_ride_car.transform.position.y,
                                                               str_ride_car.transform.position.z);
                eat_ice_cream   = true;
                ride_car_update = false;
                char_update     = true;

                return;
            }

            //아이스크림 먹는 체크.
            if (GameObject.Find("Player_ice_cream") && eat_ice_cream == true && ice_cream == false)
            {
                ice_cream = true; //위에 쓰래기통 앞에서 안먹엇을경우와 길가다 먹는 경우를 구분하기 위해서.

                //ice_cream_eat_effect
                AudioSource.PlayClipAtPoint(Effect_Audio[0], transform.position);

                spriteRenderer.sprite = sprite_trash_con;
                shoot_ = true;
                return;
            }

            if (shoot_ == true)
            {
                //아이콘에 있던 쓰래기 콘을 없애주고
                if (GameObject.Find("Player_ice_cream"))
                {
                    GameObject trash = GameObject.Find("Player_ice_cream");
                    Destroy(trash);
                }
                //프리팹 콘 생성
                Instantiate(trash_con, str_Character.transform.position, str_Character.transform.rotation);

                GameObject C_trash_con = GameObject.Find("trash_con(Clone)");
                dir_con = (str_Character.wall_check[0].transform.position - C_trash_con.transform.position).normalized;

                trash_shoot_ = true;
                shoot_       = false;
            }
        }

        if (trash_shoot_ == true)
        {
            if (GameObject.Find("trash_con(Clone)"))
            {
                GameObject C_trash_con = GameObject.Find("trash_con(Clone)");

                //던졋을때 쓰래기와 쓰래기통의 거리를 비교하기 위해서.
                float trash_shoot_dis = Vector2.Distance(obj_trash.transform.position, C_trash_con.transform.position);

                if (trash_dis >= .0f)
                {
                    C_trash_con.transform.Translate(dir_con * (8.0f * Time.deltaTime));
                    trash_dis -= 0.2f;
                }
                else if (trash_shoot_dis <= 1.0f)
                {
                    AudioSource.PlayClipAtPoint(Effect_Audio[1], transform.position);

                    steel_down = true;
                    Destroy(C_trash_con);
                }
                else if (trash_shoot_dis >= 1.0f)
                {
                    //trash_effect
                    AudioSource.PlayClipAtPoint(Effect_Audio[1], transform.position);

                    char_update  = false; //못움직이게
                    trash_shoot_ = false; //루프 안돌게
                    trash_Event  = true;  //이벤트 실행
                }
            }
        }
    }