private void Awake() // Allow access only scene MGameplayStatic Component has { if (Instance == null) { Instance = this; } else if (Instance != this) { Destroy(gameObject); } }
//SQuest를 스크롤뷰에 쓰는 리스트에 추가해주는 함수. private void AddQuest(SQuest item) { if (MGameplayStatic.GetPlayerState() == null) { return; } MGameplayStatic.GetPlayerState().CurrentQuest.Add(item); if (AddEvent != null) { AddEvent(); } }
private void ChangeNpcDestination(MNPCWalker _Walker) { //NPC가 NPCArea 밖에 있다면 안으로 가지고옴 if (Vector3.Distance(_Walker.transform.position, MGameplayStatic.GetPlayerState().CurrentCar.transform.position) > MGameplayStatic.GetPlayerState().CurrentCar.GetComponent <MNPCArea>().Radius) { _Walker.gameObject.SetActive(false); _Walker.transform.position = GetDestination().position; _Walker.gameObject.SetActive(true); } _Walker.SetDestination(GetDestination(), (Random.Range(0, 8)) < 1); }
private void FixedUpdate() { if (Input.GetKeyDown(KeyCode.R)) { if (CUserInfo.GetInstance().Money >= 2) { CUserInfo.GetInstance().Money -= 2; MGameplayStatic.GetPlayerState().CurrentCar.transform.position = StartPosition.transform.position; MGameplayStatic.GetPlayerState().CurrentCar.transform.rotation = StartPosition.transform.rotation; } } }
//차의 연료를 채워주는 함수. private void Refueling() { if (CUserInfo.GetInstance().Money >= 2) { CUserInfo.GetInstance().Money -= 2; CPlayerState PlayerState = MGameplayStatic.GetPlayerState(); if (PlayerState != null) { PlayerState.CurrentCar.CarInfo.Fuel = PlayerState.CurrentCar.CarInfo.MaxFuel; } } }
private void Update() { CPlayerState PlayerState = MGameplayStatic.GetPlayerState(); if (PlayerState == null) { return; } SCarInfo CarInfo = PlayerState.CurrentCar.CarInfo; FuelRatio = CarInfo.Fuel / CarInfo.MaxFuel; }
private void CompleteQuest() { List <SQuest> QuestList = CUserInfo.GetInstance().QuestLst.FindAll((Quest) => { return(Quest.IsSuccess); }); for (int i = 0; i < QuestList.Count; i++) { CUserInfo.GetInstance().Money += QuestList[i].Reward; Destroy(MQuestUIFunctionLibrary.GetTargetStructure(QuestList[i].TargetPos[0], QuestList[i].TargetPos[1], QuestList[i].TargetPos[2]).transform.GetChild(0).gameObject); MPopupUI.GetInstance().ShowPopup("퀘스트 완료"); } CUserInfo.GetInstance().QuestLst.RemoveAll((Quest) => { return(Quest.IsSuccess); }); MGameplayStatic.GetPlayerState().QuestSlotList.UpdateQuestList(CUserInfo.GetInstance().QuestLst); }
//시작 시 스크롤뷰 셋팅해주는 함수. private void ScrollViewInit() { Content.transform.DetachChildren(); CPlayerState PlayerState = MGameplayStatic.GetPlayerState(); if (PlayerState.CurrentQuest != null) { for (int i = 0; i < PlayerState.CurrentQuest.Count; i++) { AddScrollViewItem(PlayerState.CurrentQuest[i]); } } }
//차를 업그레이드 해주는 함수. private void CarUpgrade() { if (CUserInfo.GetInstance().CarLv >= typeof(ECarLV).GetEnumValues().Length - 1) { return; } if (CUserInfo.GetInstance().Money >= 10) { CUserInfo.GetInstance().Money -= 10; RepairEvent(); MGameplayStatic.GetPlayerState().CurrentCar.gameObject.GetComponentInChildren <ParticleSystem>().Play(); } }
//Quest를 랜덤으로 생성해서 리스트에 추가해주는 함수. public IEnumerator CreateQuestCoroutine() { WaitForSecondsRealtime wait = new WaitForSecondsRealtime(CreateTime); while (true) { SQuest RandomQuest = GetRandomQuest(AllQuestList); if (MGameplayStatic.GetPlayerState().CurrentQuest.Count >= 10) { MGameplayStatic.GetPlayerState().CurrentQuest.RemoveAt(0); } AddQuest(RandomQuest); yield return(wait); } }
public void OnClickClear() { //StructEvent().Quest.IsSuccess = true; for (int i = 0; i < CUserInfo.GetInstance().QuestLst.Count; i++) { if (CUserInfo.GetInstance().QuestLst[i].Equals(Structure.Quest)) { SQuest Quest = CUserInfo.GetInstance().QuestLst[i]; CUserInfo.GetInstance().QuestLst.RemoveAt(i); Quest.IsSuccess = true; CUserInfo.GetInstance().QuestLst.Insert(i, Quest); Structure.Quest = new SQuest(); MGameplayStatic.GetPlayerState().QuestSlotList.UpdateQuestList(CUserInfo.GetInstance().QuestLst); } } MPopupUI.GetInstance().ShowPopup("마트로 돌아가서 보상을 받으세요."); Time.timeScale = 1; SceneManager.UnloadSceneAsync(SceneManager.GetSceneByName("StructureUI")); }
//CarLV에 맞춰 Car를 설정해주는 함수. private void CarSetting() { if (MGameplayStatic.GetPlayerState() == null) { Debug.LogError("MGameplayStatic 인스턴스를 생성해주세요."); return; } for (int i = 0; i < Cars.Count; i++) { if (i.Equals(CUserInfo.GetInstance().CarLv)) { Cars[i].SetActive(true); MGameplayStatic.GetPlayerState().CurrentCar = Cars[i].GetComponent <MCar>(); SetCamera(Cars[i]); } else { Cars[i].SetActive(false); } } }
private Transform GetDestination() { CheckStart(); Transform[] Destinaitons = MGameplayStatic.GetPlayerState().CurrentCar.GetComponent <MNPCArea>().GetActivedDestinations(); return(Destinaitons[Random.Range(0, Destinaitons.Length)]); }
private IEnumerator CheckStart() { yield return(new WaitForEndOfFrame()); MGameplayStatic.GetPlayerState().CurrentCar.gameObject.GetComponent <MNPCArea>().StartCoroutine(); }