InitUI() { if (btnUndo != null) { btnUndo.onClick.AddListener(() => { int cnt = listUnit.Count; if (cnt > 0) { var unit = listUnit[cnt - 1]; maxCost += DataManager.GetInstance().GetUnitData(unit.status.name).cost; txtCost.text = maxCost.ToString(); listUnit.Remove(unit); Destroy(unit.gameObject); } }); } if (btnReset != null) { btnReset.onClick.AddListener(() => { foreach (var unit in listUnit) { Destroy(unit.gameObject); } listUnit.Clear(); maxCost = PlayData.cost; txtCost.text = maxCost.ToString(); }); } if (btnPause != null) { btnPause.onClick.AddListener(() => { goPause.SetActive(true); }); } if (btnPlay != null) { btnPlay.onClick.AddListener(() => { YellowBean.SoundManager.Instance.bgm.enabled = true; YellowBean.SoundManager.Instance.PlayBgm("Castle in the sky"); // 현재 유닛 이름을 저장한다. for (int i = 0; i < listUnit.Count; i++) { string unitName = listUnit[i].status.name; UnityAnalyticsManager.GetInstance().UseUnit(unitName); } var arrSR = goBase.GetComponentsInChildren <SpriteRenderer>(); for (int i = 0; i < arrSR.Length; i++) { arrSR[i].DOColor(new Color(0, 0, 0, 0), 1f); } animBottom.Play("move", () => { animTop.Play("move", () => { foreach (var unit in listUnit) { yMaxCost += unit.status.cost; StartCoroutine(StartAI(unit)); } foreach (var enemy in listEnemies) { gMaxCost += enemy.status.cost; StartCoroutine(StartAI(enemy)); } yOldCost = yMaxCost; gOldCost = gMaxCost; playState = ePlayState.Play; startTime = Time.time; }); }); }); } for (int i = 0; i < arrUnitToggle.LongLength; i++) { // 토글을 가져온다. var toggleUnit = arrUnitToggle[i]; // 토글에 맞는 유닛의 데이터를 가져온다. var data = DataManager.GetInstance().GetUnitData(toggleUnit.name); var txtCost = toggleUnit.GetComponentInChildren <Text>(); txtCost.text = data.cost.ToString(); // 토글에 이벤트를 추가한다. toggleUnit.onValueChanged.AddListener((on) => { if (on) { selectedUnitName = toggleUnit.name; } }); } btnLike.onClick.AddListener(() => { DoFavoriteStage(); }); btnRestart.onClick.AddListener(() => { if (App.Instance != null) { btnRestart.enabled = false; App.Instance.LoadScene(playSceneName); } }); btnBackStage.onClick.AddListener(() => { if (App.Instance != null) { btnBackStage.enabled = false; App.Instance.LoadScene(modeSelectSceneName); } }); btnNextStage.onClick.AddListener(() => { int stageID = PlayData.id; Debug.Log(stageID); if (DataManager.GetInstance().dicStoryStageData.ContainsKey(stageID++)) { var stageData = DataManager.GetInstance().dicStoryStageData[stageID]; PlayData.id = stageData.id; PlayData.map_id = stageData.map_id; PlayData.cost = stageData.cost; PlayData.Mode = PlayData.ePlayMode.Story; PlayData.listUnitInfos = stageData.listUnitInfos; if (App.Instance != null) { App.Instance.LoadScene(playSceneName); } } }); btnSave.onClick.AddListener(() => { if (PlayData.cost - GetCurrentCost(listUnit) > 40f) { animBall.Rewind(); var animClip = animBall.clip; goBalloon.SetActive(true); if (animBallRoutine != null) { StopCoroutine(animBallRoutine); animBallRoutine = null; } animBallRoutine = StartCoroutine(this.WaitForTime(animClip.length, () => { goBalloon.SetActive(false); })); return; } ifTitle.text = DataManager.GetInstance().dicMapData[PlayData.map_id].map_name; goSave.SetActive(true); }); btnSaveOK.onClick.AddListener(() => { DoSave(); }); // 콘텐츠 맨 앞. rtContent.anchoredPosition3D = Vector3.zero; // 애니메이션 animBottom.Play("start", null); }
public void Login(Action onComplete) { // 토큰이 있으면. // 구글 + 서버 접속 완료. if (Protocol.token != null) { onComplete(); // 로그인에 성곡하면 기본 목록을 보여준다. GetStages(-1); return; } // 토큰이 없으면. // 서버 접속 실패. else { // GPGS 로그인이 안되어 있다면. if (Social.localUser.authenticated == false) { if (App.Instance != null) { App.Instance.ShowLoading(); } this.gpgsManager.Init(); this.gpgsManager.SignIn((result) => { App.Instance.goLoading.SetActive(false); UnityAnalyticsManager.GetInstance().UserLoginCount(); // GPGS 로그인에 성공 했다면. if (result) { this.convertCountry(); // req_login 구조체에 채운다. var req_login = new Protocol.req_login(); req_login.cmd = 900; req_login.id = Social.localUser.id; req_login.userName = Social.localUser.userName; req_login.country = this.country; req_login.deviceId = SystemInfo.deviceName; // 시리얼 라이즈 var json = JsonConvert.SerializeObject(req_login); // 포스트로 보낸다. if (App.Instance != null) { App.Instance.reqCoroutine = StartCoroutine(Protocol.Post("api/doLogin", json, data => LoginResponse(data, onComplete))); } } // GPGS 로그인에 실패 했다면. else { if (App.Instance != null) { App.Instance.ShowMessage("GPGS SignIn Error"); } return; } }); } // 로그인이 되어있었다면. else { this.convertCountry(); // req_login 구조체에 채운다. var req_login = new Protocol.req_login(); req_login.cmd = 900; req_login.id = Social.localUser.id; req_login.userName = Social.localUser.userName; req_login.country = this.country; req_login.deviceId = SystemInfo.deviceName; // 시리얼 라이즈 var json = JsonConvert.SerializeObject(req_login); // 포스트로 보낸다. if (App.Instance != null) { App.Instance.reqCoroutine = StartCoroutine(Protocol.Post("api/doLogin", json, data => LoginResponse(data, onComplete))); } } } }
void UserModeInit() { YellowBean.SoundManager.Instance.PlayBgm("Heroes of Legend (no loop)", true, 0.2f); userModeDesc.Init(-99, null, null, null, null, null); sortToggle.Toggle(-99); // 모드 선택 창 => 유저 모드 선택. // 로그인을 한다. Login(() => { Vector2 moveValue = rtUserMode.anchoredPosition; rtUI.DOAnchorPos(-moveValue, duration); }); btnOnlineModeBack.onClick.AddListener(() => { YellowBean.SoundManager.Instance.PlayBgm("Whistle Fairy", true, 0.5f); }); // 정렬 버튼 btnLike.onClick.AddListener(() => { GetStages((int)YBEnum.eSortType.Like); }); btnClearCnt.onClick.AddListener(() => { GetStages((int)YBEnum.eSortType.ClearCnt); }); btnScore.onClick.AddListener(() => { GetStages((int)YBEnum.eSortType.Score); }); btnDate.onClick.AddListener(() => { GetStages((int)YBEnum.eSortType.Date); }); btnOption2.onClick.AddListener(() => { option.SetActive(true); }); // 맵 만들기 btnCreateStage.onClick.AddListener(() => { UnityAnalyticsManager.GetInstance().OnClickCreateMap(); PlayData.Init(); PlayData.Mode = PlayData.ePlayMode.Editor; App.Instance.LoadScene(mapSelectSceneName); }); btnUserModePlay.onClick.AddListener(() => { UnityAnalyticsManager.GetInstance().OnClickButton(); if (PlayData.id != -1) { DoPlay(PlayData.id); } }); btnRanking.onClick.AddListener(() => { GetRank(); // GetMyRank(); Vector2 moveValue = rtRanking.anchoredPosition; rtUI.DOAnchorPos(-moveValue, duration); }); }
private void StoryModeInit() { /* 스테이지 목록을 쭉 불러온다. */ for (int i = 0; i < 20; i++) { // 스테이지 데이터가 없으면. // 넘어간다. if (!DataManager.GetInstance().dicStoryStageData.ContainsKey(i + 1)) { continue; } // 1번 스테이지 부터 20번 스테이지 까지. var stageData = DataManager.GetInstance().dicStoryStageData[i + 1]; // 아이템을 생성한다. GameObject go = Instantiate(itemStoryStage); go.transform.SetParent(trStroyContent); go.transform.localRotation = Quaternion.Euler(Vector3.zero); var rt = go.GetComponent <RectTransform>(); rt.anchoredPosition3D = Vector3.zero; // 아이템 정보를 세팅한다. var item = go.GetComponent <UIStoryStageItem>(); item.IsSelect = false; // 타이틀을 설정한다. string stageTitle = string.Format("STAGE {0}", stageData.id); item.txtTitle.text = stageTitle; // 별을 기본 -1로 설정한다. // 잠금 이미지. item.StarCnt = -1; // 유저 정보를 기반으로 다시 생성한다. if (DataManager.GetInstance().userInfo.arrStageInfo.Length > i) { var stageInfo = DataManager.GetInstance().userInfo.arrStageInfo[i]; if (stageInfo.opened) { item.StarCnt = stageInfo.starCnt; } } // 버튼을 추가한다. var btn = go.GetComponent <Button>(); btn.onClick.AddListener(() => { // 나머지 버튼을 초기화 한다. { for (int ii = 0; ii < trStroyContent.childCount; ii++) { var child = trStroyContent.GetChild(ii); child.GetComponent <UIStoryStageItem>().IsSelect = false; } } btn.GetComponent <UIStoryStageItem>().IsSelect = true; // 플레이 데이터를 설정한다. PlayData.id = stageData.id; PlayData.map_id = stageData.map_id; PlayData.cost = stageData.cost; PlayData.Mode = PlayData.ePlayMode.Story; PlayData.listUnitInfos = stageData.listUnitInfos; // Desc를 설정한다. txtStoryStageDesc.text = DataManager.GetInstance().dicStoryStageData[PlayData.id].desc; // 썸네일 var mapData = DataManager.GetInstance().dicMapData[PlayData.map_id]; Sprite mapSprite = PrefabsManager.GetInstance().dicGroundPrefabs[mapData.groundName].GetComponentInChildren <SpriteRenderer>().sprite; imgStoryThumb.sprite = mapSprite; imgStoryThumb.color = Color.white; }); } // 플레이 버튼을 초기화 한다. btnStoryPlay.onClick.AddListener(() => { YellowBean.SoundManager.Instance.PlayBgm("Castle Attack", true, 0.2f); UnityAnalyticsManager.GetInstance().OnClickButton(); if (PlayData.id == -1) { return; } App.Instance.LoadScene(playScneName); }); btnOption.onClick.AddListener(() => { this.option.SetActive(true); }); // 유저 총 별 개수를 표시한다. int startCnt = DataManager.GetInstance().GetStarCnt(); txtTotalStarts.text = startCnt.ToString(); }