Пример #1
0
    private IEnumerator ICheckConnectionToServer()
    {
        while (true)
        {
            if (connectionCheckCount <= MAX_CONNECTION_CHECK_COUNT)
            {
                StartCoroutine(NetworkManager.instance.ICheckConnectionToServer()); // 서버와 연결 시도
                ++connectionCheckCount;
                yield return(new WaitForSeconds(1f));
            }
            else
            {
                Debug.Log("연결 실패 팝업 오픈!");
                OpenConnectFailPopup(true);

                yield return(null);

                break;
            }

            if (NetworkManager.instance.isConnected)
            {
                SetAllData();
                yield return(null);

                SceneMoveManager.LoadScene("LoginScene");
                break;
            }
            Debug.Log("while");
        }
    }
Пример #2
0
    /// <summary>
    /// 탐험 시작 버튼 클릭 시 실행되는 함수
    /// </summary>
    public void OnClick_ExploreStartBtn()
    {
        if (PlayerInformation.userData.Stamina < StaminaCountForStage)
        {
            PopupManager.instance.OpenAlarmPopup("행동물약이 부족합니다.");
            return;
        }

        PlayerInformation.userData.Stamina -= StaminaCountForStage;

        // 필요한 스테이지에 대한 정보를 저장한다.
        PlayerInformation.stageData.stageNumber = selectedStageNumber;
        PlayerInformation.stageData.eStageLevel = eStageLevel;

        // TODO (장현명) : 스테이지 보상 타입을 여러개로 바꾸기
        PlayerInformation.stageData.rewardType = ERewardType.gold;

        if (NetworkManager.instance != null)
        {
            StartCoroutine(IConsumeStamina());
        }
        else
        {
            Debug.LogWarning("NetworkManager가 없어서 서버로 업데이트 된 정보를 보낼 수 없습니다.");
            SceneMoveManager.LoadScene("BattleScene");
        }
    }
Пример #3
0
    /// <summary>
    /// 유저 이름이 존재하는지 체크한다.
    /// </summary>
    /// <param name="userName">체크 할 유저 이름</param>
    /// <returns>응답 메세지</returns>
    public IEnumerator ICheckUserNameExist(string userName)
    {
        WWWForm form = new WWWForm();

        form.AddField("Name", userName);

        UnityWebRequest www = UnityWebRequest.Post(CHECK_IF_USER_NAME_EXISTS_URL, form);

        yield return(www.SendWebRequest());

        if (www.isDone)
        {
            string responseMessage = www.downloadHandler.text;
            Debug.Log("응답 메시지를 받음 : " + www.downloadHandler.text);

            //JSONArray json = (JSONArray)JSON.Parse(www.downloadHandler.text);

            if (responseMessage == RESPONSE_USER_NAME_EXISTS_MESSAGE)
            {
                Debug.Log("유저 이름이 존재합니다." + responseMessage);
                PopupManager.instance.OpenAlarmPopup("유저 이름이 존재합니다.");
            }
            else
            {
                PlayerInformation.userData.name = userName;
                isNewUser = true; // 새 유저로 표시

                Debug.Log("유저 이름이 존재하지 않습니다." + responseMessage);
                Debug.Log("userName : "******"PlayerInformation.isNew -> 새로운 유져인가?: " + isNewUser);
                SceneMoveManager.LoadScene("CharacterChoiceScene");
            }
        }
    }
Пример #4
0
    void Update()
    {
        //カーソル移動
        if (Input.GetKeyDown("up") || Input.GetKeyDown("down") || Input.GetKeyDown("right") || Input.GetKeyDown("left"))
        {
            mode *= -1;
            if (mode == 1)
            {
                text.text   = ("➡ はしる\n  やめる");
                shadow.text = ("➡ はしる\n  やめる");
            }
            else
            {
                text.text   = ("  はしる\n➡ やめる");
                shadow.text = ("  はしる\n➡ やめる");
            }
        }
        //決定
        if (Input.GetKeyDown("space"))
        {
            SceneMoveManager script = sceneManager.GetComponent <SceneMoveManager>();

            if (mode == 1)
            {
                script.LoadScene();
            }
            else
            {
                script.ToGameEnd();
            }
        }
    }
Пример #5
0
    /// <summary>
    /// 행동력을 소모한다.
    /// </summary>
    /// <returns></returns>
    private IEnumerator IConsumeStamina()
    {
        yield return(StartCoroutine(NetworkManager.instance.ISaveCharacterDataToServer()));

        Debug.Log("행동력 소모 후 서버에 데이터 저장 완료");
        SceneMoveManager.LoadScene("BattleScene");
    }
Пример #6
0
    // 로그인 없이 게임 시작하기 버튼
    public void OnClick_JustGameStartBtn()
    {
        if (PlayerPrefs.HasKey("name"))
        {
            Debug.Log("내부에 name이 있습니다.");
            // 플레이어 데이터 불러오기.

            // TODO (장현명) : 데이터가 안불러와질것임 StartCoroutine으로 처리해야 함.
            //PlayerInformation.LoadData(ESaveLoadMode.application);
            Debug.Log("플레이어 데이터를 Application에서 불러옵니다.");
            Debug.Log("캐릭터 선택 씬으로 이동합니다.");
            SceneMoveManager.LoadScene("CharacterChoiceScene");
        }
        else
        {
            Debug.Log("내부에 name이 없습니다.");
            Debug.Log("PlayerInformation에 로그인 모드를 GoogleLoginMode : false로 바꿉니다.");
            PlayerInformation.eUserCreateMode = EUserCreateMode.withoutGPGSId;
            if (NetworkManager.instance == null)
            {
                Debug.LogWarning("Network Manager가 없음. GoogleLoginMode를 false로 바꿀 수 없다");
            }
            else
            {
                NetworkManager.instance.isGoogleLoginMode = false;
            }
            OpenWarningPopup(true);
        }
    }
Пример #7
0
    // 구글 아이디로 로그인 버튼
    public void OnClick_GoogleLoginBtn()
    {
        // TODO : GPGS service 붙여야 한다.
        if (PlayerPrefs.HasKey("name"))
        {
            Debug.Log("내부에 name이 있습니다.!");
            // TODO (장현명) : 데이터가 안불러와질것임 StartCoroutine으로 처리해야 함.
            //PlayerInformation.LoadData(ESaveLoadMode.server); // 정보 불러오기.
            Debug.Log("플레이어 데이터를 Server에서 불러옵니다.");
            Debug.Log("캐릭터 선택 씬으로 이동합니다.");
            SceneMoveManager.LoadScene("CharacterChoiceScene");
        }
        else
        {
            Debug.Log("내부에 name이 없습니다.");
            Debug.Log("PlayerInformation에 로그인 모드를 GoogleLoginMode : true로 바꿉니다.");
            PlayerInformation.eUserCreateMode = EUserCreateMode.withGPGSId;
            if (NetworkManager.instance != null)
            {
                NetworkManager.instance.isGoogleLoginMode = true;
                OpenCreateUserNamePopup(true);
            }
            else
            {
                Debug.LogWarning("NetworkManager가 없습니다. 화면 전환 불가능");
            }

            // TODO (장현명) : GPGS Service를 연동하여  ID를 받아온다.
            //Get GPGS ID from google server. and get GPGS ID from our server
        }
    }
Пример #8
0
    private IEnumerator ISelectCharacterBtn()
    {
        // 새로운 유저가 아닐경우
        PlayerInformation.userData.characterType = currentCharacterType;

        if (NetworkManager.instance != null)
        {
            PlayerInformation.inventory.InitUserInventory(); // 기존에 있던 인벤토리 정보들을 삭제한다.

            // 선택한 캐릭터의 정보를 서버로부터 불러와 PlayerInformation.userData에 넣어준다.
            yield return(StartCoroutine(NetworkManager.instance.ILoadCharacterDataFromServer(PlayerInformation.userData.name, currentCharacterType)));

            // 선택한 캐릭터의 장비 정보를 서버로부터 불러와 PlayerInformation.inventory.equipmentItemDataList에 넣어준다.
            yield return(StartCoroutine(NetworkManager.instance.ILoadEquipmentItemsFromServer()));

            // 선택한 캐릭터의 소비 아이템들의 정보를 서버로부터 불러와 PlayerInformation.inventory.consumableItemDataList에 넣어준다.
            yield return(StartCoroutine(NetworkManager.instance.ILoadConsumableItemsFromServer()));

            // 장착한 아이템들의 정보를 서버로부터 가져온다.
            yield return(StartCoroutine(NetworkManager.instance.ILoadEquippedItemsFromServer()));

            // 캐릭터의 스테이지 정보들을 가져온다.
            yield return(StartCoroutine(NetworkManager.instance.IGetStagesInformation()));
        }
        else
        {
            Debug.LogWarning("NetworkManager가 없음");
        }
        PlayerPrefs.SetString("Name", PlayerInformation.userData.name);
        SceneMoveManager.LoadScene("MainScene", "Map_MainScene");
    }
Пример #9
0
    void Start()
    {
        totalTime = minute * 60 + seconds;
        seconds++;
        oldSeconds = 0f;
        timerText  = GetComponentInChildren <Text>();

        sceneManger = gameManager.GetComponent <SceneMoveManager>();
    }
Пример #10
0
        /// <summary>
        /// @brief 自身が部屋に入ることに成功したらシーンを移動させる
        /// </summary>
        public override void OnJoinedRoom()
        {
            //メッセージ処理の実行を一時停止
            PhotonNetwork.IsMessageQueueRunning = false;

            //シーンを移動させる
            SceneMoveManager sceneMove = GetComponent <SceneMoveManager>();

            sceneMove.SceneMove();

            Debug.Log("部屋の入室に成功しました");
        }
Пример #11
0
 /// <summary>
 /// 이어하기 버튼 클릭 시 호출
 /// </summary>
 public void OnClick_ContinueGameStartBtn()
 {
     if (PlayerPrefs.HasKey("Name"))
     {
         PlayerInformation.userData.name = PlayerPrefs.GetString("Name");
         SceneMoveManager.LoadScene("CharacterChoiceScene");
     }
     else
     {
         PopupManager.instance.OpenAlarmPopup("내부에 저장된 데이터가 없습니다.");
     }
 }
Пример #12
0
    private IEnumerator ICreateNewCharacterBtn()
    {
        // 다른 캐릭터가 있는 상태에서 새로운 유저를 생성하는 경우에
        if (PlayerInformation.userData.characterType != EPlayerCharacterType.none)
        {
            PlayerInformation.inventory.InitUserInventory(); // 기존에 있던 인벤토리 정보들을 삭제한다.
        }
        PlayerInformation.userData.characterType = currentCharacterType;

        if (NetworkManager.instance == null)
        {
            Debug.LogWarning("NetworkManager가 없습니다. 새로운 유저의 정보를 서버에 생성 할 수 없습니다.");
        }
        else
        {
            // 새로운 캐릭터 유저인가?
            bool isExistUser = false;

            if (NetworkManager.instance.isExistCharacter[(int)currentCharacterType - 1] == true)
            {
                isExistUser = true;
            }
            if (!isExistUser)
            {
                // 새로운 유저의 정보를 서버에 생성하게 한다.
                yield return(StartCoroutine(NetworkManager.instance.ICreateNewUserInformationToServer(PlayerInformation.eUserCreateMode)));

                // 서버에 모든 스테이지의 별의 개수를 0으로 초기화한다.
                for (int stageNumber = 1; stageNumber <= PlayerInformation.stageData.maxStageCount; ++stageNumber)
                {
                    yield return(StartCoroutine(NetworkManager.instance.ISetStageInformationToServer(stageNumber, 0)));
                }
            }
        }

        PlayerInformation.userData.SetGoods(1000, 50);                // 재화를 설정한다.
        NetworkManager.instance.CreateNewUserCharacterDataToServer(); // PlayerInformation.userData의 값을 서버로 보낸다.
        PlayerPrefs.SetString("Name", PlayerInformation.userData.name);
        SceneMoveManager.LoadScene("MainScene", "Map_MainScene");
    }
Пример #13
0
 public void MainSceneLoadBtn()
 {
     PausePopUp();
     SceneMoveManager.LoadScene("MainScene", "Map_MainScene");
 }
Пример #14
0
 public void LoadMainScene()
 {
     SceneMoveManager.LoadScene("MainScene", "Map_MainScene");
 }
Пример #15
0
 public void Start()
 {
     sceneManger = gameManager.GetComponent <SceneMoveManager>();
 }
Пример #16
0
 /// <summary>
 /// RPG 버튼을 누를 때 호출
 /// </summary>
 public void OnClick_MoRpgBtn()
 {
     SceneMoveManager.LoadScene("MORPGScene");
 }
Пример #17
0
 /// <summary>
 /// 몬스터 헌터 버튼을 누를 때 호출
 /// </summary>
 public void OnClick_MonsterHunterBtn()
 {
     SceneMoveManager.LoadScene("MonsterHunterScene");
 }
 void OnDestroy()
 {
     instance = null;
 }
Пример #19
0
 /// <summary>
 /// Main 화면으로 이동한다.
 /// </summary>
 public void OnClick_BackToMainBtn()
 {
     SceneMoveManager.LoadScene("MainScene");
 }
Пример #20
0
 /// <summary>
 /// 캐릭터 선택 버튼 클릭 시 호출
 /// </summary>
 public void OnClick_CharacterChoiceBtn()
 {
     SceneMoveManager.LoadScene("CharacterChoiceScene");
 }
Пример #21
0
 /// <summary>
 /// MainScene으로 돌아간다.
 /// </summary>
 public void OnClick_BackBtn()
 {
     SceneMoveManager.LoadScene("MainScene", "Map_MainScene");
 }