Пример #1
0
 void Start()
 {
     // 현재 슬롯의 스크립트를 가져온다.
     slot = GetComponent <SlotCtrl>();
     // 빈 이미지 객체를 태그를 이용하여 가져온다.
     Img = GameObject.FindGameObjectWithTag("DragImg").transform;
     // 빈 이미지 객체가 가진 Image컴포넌트를 가져온다.
     EmptyImg = Img.GetComponent <Image>();
 }
Пример #2
0
    // 아이템을 넣기위해 모든 슬롯을 검사.
    public bool AddItem(ItemCtrl item)
    {
        // 슬롯에 총 개수.
        int slotCount = ItemAllSlot.Count;

        // 넣기위한 아이템이 슬롯에 존재하는지 검사.
        for (int i = 0; i < slotCount; i++)
        {
            // 그 슬롯의 스크립트를 가져온다.
            SlotCtrl slot = ItemAllSlot[i].GetComponent <SlotCtrl>();
            // 슬롯이 비어있으면 통과.
            if (!slot.isSlots())
            {
                continue;
            }

            // 슬롯에 존재하는 아이템의 타입과 넣을려는 아이템의 타입이 같고.
            // 슬롯에 존재하는 아이템의 겹칠수 있는 최대치가 넘지않았을 때. (true일 때)
            if (slot.ItemReturn().type == item.type)
            {
                if (slot.ItemReturn().type.ToString() == "ProofVest")
                {
                    return(false);
                }
                // 슬롯에 아이템을 넣는다.
                Debug.Log("중복 아이템 추가..!");
                slot.AddItem(item, true, slot);
                return(true);
            }
        }

        // 빈 슬롯에 아이템을 넣기위한 검사.
        for (int i = 0; i < slotCount; i++)
        {
            SlotCtrl slot = ItemAllSlot[i].GetComponent <SlotCtrl>();

            // 슬롯이 비어있지 않으면 통과
            if (slot.isSlots())
            {
                continue;
            }

            if (item.type.ToString() == "ProofVest")
            {
                player.armour += 100;
                player.imgArmourBar.fillAmount = (float)player.armour / (float)player.initArmour;
                player.send_PlayerHP(player.hp, player.armour);
            }

            slot.AddItem(item, false, null);
            return(true);
        }

        // 위에 조건에 해당되는 것이 없을 때 아이템을 먹지 못함.
        return(false);
    }
Пример #3
0
    public void ActualizarSlot(Item item)
    {
        List <SlotCtrl> hijos = new List <SlotCtrl>();

        transform.Find("ItemsParent").gameObject.GetComponentsInChildren(true, hijos);

        SlotCtrl slotVacio = BuscarSlotVacio(hijos);

        slotVacio.AdquirirItem(item);
    }
Пример #4
0
    public void AddItem(ItemCtrl item, bool same, SlotCtrl sameSlot)
    {
        if (same == true)
        {
            if (item.type == 0)
            {
                player.bulletCount[0] += 30;
                sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다.
            }
            else if ((int)item.type == 1)
            {
                player.bulletCount[1] += 30;
                player.bulletCount[2] += 30;
                sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다.
            }
            else if ((int)item.type == 2)
            {
                player.bulletCount[3] += 30;
                sameSlot.ItemReturn().setItemCount(30); // 이미 존재 하면 해당 갯수를 증가한다.
            }
            else if ((int)item.type == 3)
            {
                sameSlot.ItemReturn().setItemCount(1); // 이미 존재 하면 해당 갯수를 증가한다
            }

            if (player.now_Weapon != -1)
            {
                player.weaponText.text = player.reloadBulletCount[player.now_Weapon] + " / " + player.bulletCount[player.now_Weapon];
            }
        }
        else
        {
            if (item.type == 0)
            {
                player.bulletCount[0] += 30;
            }
            else if ((int)item.type == 1)
            {
                player.bulletCount[1] += 30;
                player.bulletCount[2] += 30;
            }
            else if ((int)item.type == 2)
            {
                player.bulletCount[3] += 30;
            }

            if (player.now_Weapon != -1)
            {
                player.weaponText.text = player.reloadBulletCount[player.now_Weapon] + " / " + player.bulletCount[player.now_Weapon];
            }
            slot.Push(item);
        }

        UpdateInfo(true, item.DefaultImg);
    }
Пример #5
0
    public void ActualizarSlotSacandoElItem(Item item)
    {
        List <SlotCtrl> hijos = new List <SlotCtrl>();

        transform.Find("ItemsParent").gameObject.GetComponentsInChildren(true, hijos);

        SlotCtrl slotConItem = BuscarSlotConItem(hijos, item);

        slotConItem.itemPrefab = null;
        slotConItem.ActualizarImagen(null);
    }
Пример #6
0
    // 아이템 옮기기 및 교환.
    public void ItemSwap1(SlotCtrl value, Vector3 Pos)
    {
        SlotCtrl FirstSlot = NearDisItemSlot(Pos);

        // 현재 슬롯과 옮기려는 슬롯이 같으면 함수 종료.
        if (value == FirstSlot || FirstSlot == null)
        {
            value.UpdateInfo(true, value.slot.Peek().DefaultImg);
            return;
        }

        // 가까운 슬롯이 비어있으면 옮기기.
        if (!FirstSlot.isSlots())
        {
            ItemSwap2(FirstSlot, value);
        }
        // 교환.
        else
        {
            int              Count = value.slot.Count;
            ItemCtrl         item  = value.slot.Peek();
            Stack <ItemCtrl> temp  = new Stack <ItemCtrl>();

            {
                for (int i = 0; i < Count; i++)
                {
                    temp.Push(item);
                }

                value.slot.Clear();
            }

            ItemSwap2(value, FirstSlot);

            {
                Count = temp.Count;
                item  = temp.Peek();

                for (int i = 0; i < Count; i++)
                {
                    FirstSlot.slot.Push(item);
                }

                FirstSlot.UpdateInfo(true, temp.Peek().DefaultImg);
            }
        }
    }
Пример #7
0
    void Fire(SlotCtrl slot)
    {
        // 동적으로 총알을 생성하는 함수
        CreateBullet();

        reloadBulletCount[now_Weapon] -= 1;
        slot.slot.Peek().setItemCount(-1);
        weaponText.text = reloadBulletCount[now_Weapon] + " / " + bulletCount[now_Weapon];
        if (slot.slot.Peek().getItemCount() == 0 && slot.isSlots() == true)
        {
            slot.slot.Clear();
            slot.UpdateInfo(false, slot.DefaultImg);
        }
        source.PlayOneShot(soundCollection[now_Weapon], 0.9f);

        // 잠시 기다리는 루틴을 위해 코루틴 함수로 호출
        StartCoroutine(this.ShowMuzzleFlash());
    }
Пример #8
0
    public void UsarItemEnLaPosicion(int unaPosicion)
    {
        List <SlotCtrl> hijos = new List <SlotCtrl>();

        transform.Find("ItemsParent").gameObject.GetComponentsInChildren(true, hijos);

        SlotCtrl slot = hijos[unaPosicion - 1];

        if (slot.itemPrefab != null && slot.itemPrefab.consumible)
        {
            GameObject.FindGameObjectWithTag("Player").GetComponent <JugadorCtrl>().UsarItem(slot.itemPrefab);
            QuitarItem(slot.itemPrefab);
            slot.itemPrefab = null;
            slot.ActualizarImagen(null);
        }
        if (slot.itemPrefab != null && slot.itemPrefab.nombreDeItem == "Bote")
        {
            GameObject.FindGameObjectWithTag("Player").GetComponent <JugadorCtrl>().UsarBote();
        }
    }
Пример #9
0
    // 아이템!!!!!!!!!! 1: 비어있는 슬롯, 2: 안 비어있는 슬롯.
    void ItemSwap2(SlotCtrl xFirst, SlotCtrl oSecond)
    {
        int      Count = oSecond.slot.Count;
        ItemCtrl item  = oSecond.slot.Peek();

        for (int i = 0; i < Count; i++)
        {
            if (xFirst != null)
            {
                xFirst.slot.Push(item);
            }
        }

        if (xFirst != null)
        {
            xFirst.UpdateInfo(true, oSecond.ItemReturn().DefaultImg);
        }

        oSecond.slot.Clear();
        oSecond.UpdateInfo(false, oSecond.DefaultImg);
    }
Пример #10
0
    void OnTriggerEnter(Collider coll)
    {
        // 충돌한 Collider가 Camchange의 CAMCHANGE(Tag값)이면 카메라 전환
        if (coll.gameObject.tag == "CAMCHANGE")
        {
            FollowCam followCam = GameObject.Find("Main Camera").GetComponent <FollowCam>();
            if (sensorCheck == false)
            {
                followCam.change = true;
                Debug.Log("체크 인");
                followCam.height = 2.5f;
                followCam.dist   = 7.0f;
                sensorCheck      = true;
            }

            //집안에 들어갈 경우 네비 체크 해제
            navagent.enabled = false;
        }

        // 충돌한 게임오브젝트의 태그값 비교
        if (coll.gameObject.tag == "BULLET")
        {
            string shot_nickname = coll.gameObject.GetComponent <BulletCtrl>().playerNickName;

            CreateBloodEffect(coll.transform.position);
            if (armour <= 0)
            {
                // 맞은 총알의 Damage를 추출해 Player HP 차감
                hp -= coll.gameObject.GetComponent <BulletCtrl>().damage;
                networkCtrl.Player_HP(-1, hp, armour, shot_nickname);
                // Image UI 항목의 fillAmount 속성을 조절해 생명 게이지 값 조절
                imgHpBar.fillAmount = (float)hp / (float)initHp;
            }
            else
            {
                // 방어력 차감
                armour -= coll.gameObject.GetComponent <BulletCtrl>().damage;
                networkCtrl.Player_HP(-1, hp, armour, shot_nickname);
                // Image UI 항목의 fillAmount 속성을 조절해 방어력 게이지 값 조절
                imgArmourBar.fillAmount = (float)armour / (float)initArmour;

                // 방어력 0일때 방탄조끼 아이템 인벤토리에서 삭제
                if (armour <= 0)
                {
                    SlotCtrl proofVest = GetItem(4);
                    proofVest.slot.Clear();
                    proofVest.UpdateInfo(false, proofVest.DefaultImg);
                }
            }
            // Image UI 항목의 fillAmount 속성을 조절해 생명 게이지 값 조절
            //imgHpBar.fillAmount = (float)hp / (float)initHp;

            //if (hp <= 0)
            //{
            //    // 마우스 잠겨 있을경우 푼다.
            //    Cursor.lockState = CursorLockMode.None;//마우스 커서 고정 해제
            //    Cursor.visible = true;//마우스 커서 보이기
            //    PlayerDie();
            //}
            // Bullet 삭제
            Destroy(coll.gameObject);
        }

        // 캐릭터 앞 트리거가 내부 벽과 충돌을 검사하는 변수
        if (coll.gameObject.tag == "House")
        {
            shotable = false;
        }

        // 충돌한 게임오브젝트의 태그값 비교
        if (coll.gameObject.tag == "ZombieAttack")
        {
            CreateBloodEffect(coll.transform.position);

            if (armour <= 0)
            {
                // 체력 차감
                hp -= 50;
                networkCtrl.Player_HP(-1, hp, armour, "Zombie");
                //Image UI 항목의 fillAmount 속성을 조절해 생명 게이지 값 조절
                imgHpBar.fillAmount = (float)hp / (float)initHp;
            }
            else if (armour > 0)
            {
                // 방어력 차감
                armour -= 50;
                networkCtrl.Player_HP(-1, hp, armour, "Zombie");
                // Image UI 항목의 fillAmount 속성을 조절해 방어력 게이지 값 조절
                imgArmourBar.fillAmount = (float)armour / (float)initArmour;

                // 방어력 0일때 방탄조끼 아이템 인벤토리에서 삭제
                if (armour <= 0)
                {
                    // GetItem(4)는 ProofVest를 받아옴
                    SlotCtrl proofVest = GetItem(4);
                    proofVest.slot.Clear();
                    proofVest.UpdateInfo(false, proofVest.DefaultImg);
                }
            }

            //if (hp <= 0)
            //{
            //    // 마우스 잠겨 있을경우 푼다.
            //    Cursor.lockState = CursorLockMode.None;//마우스 커서 고정 해제
            //    Cursor.visible = true;//마우스 커서 보이기
            //    PlayerDie();

            //}
        }

        if (coll.gameObject.tag == "DangerLine")
        {
            dangerLineIn = true;
        }

        if (coll.gameObject.tag == "Vehicle")
        {
            rideCar   = true;
            ridingCar = GameObject.Find(coll.gameObject.name).GetComponent <VehicleCtrl>();
        }
    }
Пример #11
0
    IEnumerator StartKeyInput()
    {
        do
        {
            // 총이 장착이 되었을때만 발사 가능
            if (shotable == true)
            {
                if (Input.GetMouseButtonDown(0) && now_Weapon != -1)
                {
                    if (now_Weapon >= 3)
                    {
                        bulletFinding = GetItem(2);
                    }
                    else if (now_Weapon == 2)
                    {
                        bulletFinding = GetItem(1);
                    }
                    else
                    {
                        bulletFinding = GetItem(now_Weapon);
                    }


                    if (bulletFinding != null && reloadBulletCount[now_Weapon] != 0)
                    {
                        Fire(bulletFinding);
                        networkCtrl.Player_Shot();
                    }
                }
            }
            // 1번 , 2번 키 입력시 총 랜더링과 어떤 총인지 판별한다.
            if (Input.GetKeyDown(KeyCode.Alpha1) && weaponSlotNumber[0] != -1)
            {
                animator.SetBool("IsEquip", true);
                // 아래의 if else if문은 M4와 M16으로 총을 장착하였을 때 5.56mm의 종합적인 개수의 동기화를 위함.
                // 1번 장착 m16, 2번 장착 m4일때
                if (weaponSlotNumber[0] == 1 && weaponSlotNumber[1] == 2)
                {
                    bulletCount[1] = bulletCount[2];
                }
                // 1번 장착 m4, 2번 장착 m16일때
                else if (weaponSlotNumber[0] == 2 && weaponSlotNumber[1] == 1)
                {
                    // m16의 토탈 불릿과 동일하게 m4 토탈 불릿을 개수 동기화
                    bulletCount[2] = bulletCount[1];
                }


                now_Weapon = weaponSlotNumber[0];
                weaponImage.GetComponent <Image>().sprite = weaponIEquipImage[now_Weapon];
                weaponText.text = reloadBulletCount[now_Weapon] + " / " + bulletCount[now_Weapon];

                for (int i = 0; i < 4; ++i)
                {
                    if (now_Weapon == i)
                    {
                        weaponView[now_Weapon].GetComponent <Renderer>().enabled = true;
                    }
                    else
                    {
                        weaponView[i].GetComponent <Renderer>().enabled = false;
                    }
                }
            }
            else if (Input.GetKeyDown(KeyCode.Alpha2) && weaponSlotNumber[1] != -1)
            {
                animator.SetBool("IsEquip", true);
                // 아래의 if else if문은 M4와 M16으로 총을 장착하였을 때 5.56mm의 종합적인 개수의 동기화를 위함.
                // 1번 장착 m16, 2번 장착 m4일때
                if (weaponSlotNumber[0] == 1 && weaponSlotNumber[1] == 2)
                {
                    bulletCount[2] = bulletCount[1];
                }
                //1번 장착 m4, 2번 장착 m16일때
                else if (weaponSlotNumber[0] == 2 && weaponSlotNumber[1] == 1)
                {
                    bulletCount[1] = bulletCount[2];
                }


                now_Weapon = weaponSlotNumber[1];
                weaponImage.GetComponent <Image>().sprite = weaponIEquipImage[now_Weapon];
                weaponText.text = reloadBulletCount[now_Weapon] + " / " + bulletCount[now_Weapon];
                for (int i = 0; i < 4; ++i)
                {
                    if (now_Weapon == i)
                    {
                        weaponView[now_Weapon].GetComponent <Renderer>().enabled = true;
                    }
                    else
                    {
                        weaponView[i].GetComponent <Renderer>().enabled = false;
                    }
                }
            }
            // Tab키 입력시 인벤토리 코드 실행
            if (Input.GetKeyDown(KeyCode.Tab))
            {
                if (inventoryShow == false)
                {
                    // 마우스 잠겨 있을경우 푼다.
                    Cursor.lockState = CursorLockMode.None; //마우스 커서 고정 해제
                    Cursor.visible   = true;                //마우스 커서 보이기

                    inventory.SetActive(true);
                    inventoryShow = true;
                    RenewUpdate();

                    // 총 발사 잠금
                    shotable = false;
                }
                else if (inventoryShow == true)
                {
                    // 마우스가 안점겨 있을경우 다시 잠군다.
                    Cursor.lockState = CursorLockMode.Locked; //마우스 커서 고정
                    Cursor.visible   = false;                 //마우스 커서 보이기

                    inventory.SetActive(false);
                    inventoryShow = false;

                    // 총 발사 잠금 해제
                    shotable = true;
                }
            }

            if (rideCar == true && GetTheCar == true && ridingCar.Car_Status == true && ridingCar.player_die == true)
            {
                //차량이 탑승 중에 차가 터진 경우
                this.transform.position = new Vector3(ridingCar.transform.position.x - 1, ridingCar.transform.position.y, ridingCar.transform.position.z);
                PlayerDie();
                networkCtrl.Player_HP(-1, hp, armour, "Car");  // 차량이 터지면서 hp는 0으로 만든다.
            }

            if (Input.GetKeyDown(KeyCode.G))
            {
                if (rideCar == true && GetTheCar == false && ridingCar.Car_Status == false)
                {
                    // 차량 탑승 여부를 나타냄 (탑승)
                    GetTheCar = true;

                    // 총 발사 가능
                    shotable = false;
                    ridingCar.vehicleStop = false;
                    CarNum = ridingCar.carNum;            // 차량의 번호를 가지고 온다.
                    ridingCar.Car_Status = true;
                    networkCtrl.Car_Status(CarNum, true); // 차량 탑승했다고 서버에게 알린다.
                    ridingCar.GetComponent <Rigidbody>().isKinematic = false;

                    // 차량 탑승 하였으니 NavMesh Off
                    navagent.enabled = false;

                    // 캐릭터 캡슐 콜라이더 비활성화
                    gameObject.GetComponent <CapsuleCollider>().enabled = false;

                    // 총구 앞 캡슐 콜라이더 비활성화
                    //firePos.GetComponent<CapsuleCollider>().enabled = false;

                    // 차량 UI 활성화
                    VehicleUI.SetActive(true);
                    vehicleHpBar.fillAmount = (float)ridingCar.vehicleHp / (float)ridingCar.vehicleInitHp;



                    if (ridingCar.vehicleType.ToString() == "JEEP")
                    {
                        JEEPImage.SetActive(true);
                        UAZImage.SetActive(false);
                    }
                    else if (ridingCar.vehicleType.ToString() == "UAZ")
                    {
                        UAZImage.SetActive(true);
                        JEEPImage.SetActive(false);
                    }

                    // 차량 탑승시 PlayerModel에 있는 engine 사운드 재생
                    engineSource.Play();
                }
                else if (rideCar == true && GetTheCar == true && ridingCar.Car_Status == true)
                {
                    // 차량 탑승 여부를 나타냄 (하차)
                    // 차량 탑승 가능한지 여부를 나타냄
                    rideCar = false;
                    // 차량 하차했다고 서버에게 알린다.
                    networkCtrl.Car_Status(CarNum, false);
                    ridingCar.Car_Status = false;

                    // 차량 하차 하였으니 NavMesh On
                    navagent.enabled = true;

                    // 차량을 내렸을 경우 차량 번호를 지운다.
                    CarNum = -1;

                    // 차량을 탑승 여부를 나타냄 (하차)
                    GetTheCar = false;

                    // 총 발사 가능
                    shotable = true;

                    // 하차 후 차량 브레이크 작동
                    ridingCar.vehicleStop = true;
                    ridingCar.GetComponent <Rigidbody>().isKinematic = true;

                    // 차량 하차 시 좌표 이동
                    this.transform.position = new Vector3(ridingCar.transform.position.x - 1, ridingCar.transform.position.y, ridingCar.transform.position.z);

                    // 캐릭터 캡슐 콜라이더 활성화
                    gameObject.GetComponent <CapsuleCollider>().enabled = true;

                    // 총구 앞 캡슐 콜라이더 활성화
                    //firePos.GetComponent<CapsuleCollider>().enabled = true;

                    // 차량 UI 비활성화 전 이미지 부터 비활성화
                    JEEPImage.SetActive(false);
                    UAZImage.SetActive(false);

                    // 차량 UI 비활성화
                    VehicleUI.SetActive(false);


                    // 차량 하차시 PlayerModel에 있는 engine 사운드 멈춤
                    engineSource.Stop();
                }
            }

            // 차량 탑승시 스페이스바로 경적 울림
            if (Input.GetKeyDown(KeyCode.Space) && GetTheCar == true)
            {
                source.PlayOneShot(vehicleHornSound, 1.0f);
            }

            // R키를 누르면 재장전
            if (Input.GetKeyDown(KeyCode.R))
            {
                if (now_Weapon != -1 && bulletCount[now_Weapon] != 0)
                {
                    cooltimeCtrl.ReloadCollTime();
                }
            }

            if (Input.GetKeyDown(KeyCode.CapsLock))
            {
                if (realView == false)
                {
                    realMap.SetActive(true);
                    realView = true;
                }
                else if (realView == true)
                {
                    realMap.SetActive(false);
                    realView = false;
                }
            }

            if (realView == true)
            {
                playerPositionImage.localPosition = new Vector3(-gameObject.transform.position.z * 0.5f, gameObject.transform.position.x * 0.5f);
            }

            //------------------------------------------------------------------------------
            // 위치 이동 치트.
            if (Input.GetKeyDown(KeyCode.Alpha3)) // 낡은 공장 단지
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(875.8784f, 30.07964f, 2529.244f);
                }
                else
                {
                    tr.transform.position = new Vector3(526.118f, 50.04224f, 2705.361f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha4)) // 학교
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(653.0f, 30.05061f, 1855.0f);
                }
                else
                {
                    tr.transform.position = new Vector3(1407.026f, 50.0f, 2190.113f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha5)) // 언덕위 집
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(654.1024f, 30.05061f, 968.7f);
                }
                else
                {
                    tr.transform.position = new Vector3(718.0281f, 50.0f, 1235.498f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha6)) // 컨테이너 단지
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(1001.0f, 30.07964f, 988.0f);
                }
                else
                {
                    tr.transform.position = new Vector3(349.1992f, 60.06981f, 376.0149f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha7)) // 호수 옆 집
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(1572.333f, 30.07964f, 923.0f);
                }
                else
                {
                    tr.transform.position = new Vector3(1545.017f, 59.95751f, 904.9451f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha8)) // 센터
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(1390.741f, 30.08651f, 2121.12f);
                }
                else
                {
                    tr.transform.position = new Vector3(1008.397f, 30.06981f, 1553.832f);
                }
                navagent.enabled = true;
            }
            else if (Input.GetKeyDown(KeyCode.Alpha9)) // 센터
            {
                navagent.enabled = false;
                if (SingletonCtrl.Instance_S.NowMapNumber == 2)
                {
                    tr.transform.position = new Vector3(1647.643f, 64.04927f, 2341.669f);
                }
                else
                {
                    tr.transform.position = new Vector3(1008.397f, 30.06981f, 1553.832f);
                }
                navagent.enabled = true;
            }


            else if (Input.GetKeyDown(KeyCode.Alpha0))
            {
                // Navmesh ON/OFF
                if (navagent.enabled == true)
                {
                    navagent.enabled = false;
                }
                else
                {
                    navagent.enabled = true;
                }
            }
            //------------------------------------------------------------------------------

            if (playerState == PlayerState.die)
            {
                ScreenSceneOFF.color += new Color(0f, 0f, 0f, 0.003f);

                if (ScreenSceneOFF.color.a >= 1.0f)
                {
                    // 플레이어 모든 코루틴 종료
                    SceneManager.LoadScene("DieGameScene"); // 다음씬으로 넘어감
                }
            }

            if (SingletonCtrl.Instance_S.SurvivalPlayer == 1 && playerState != PlayerState.die)
            {
                ScreenSceneOFF.gameObject.SetActive(true);
                Cursor.lockState      = CursorLockMode.None; //마우스 커서 고정 해제
                Cursor.visible        = true;                //마우스 커서 보이기
                ScreenSceneOFF.color += new Color(0f, 0f, 0f, 0.003f);

                if (ScreenSceneOFF.color.a >= 1.0f)
                {
                    // 플레이어 모든 코루틴 종료
                    SceneManager.LoadScene("WinGameScene"); // 다음씬으로 넘어감
                }
            }


            yield return(null);
        } while (true);
        //yield return null;
    }