//WPWorker를 이용해 현재 일하고 있는 field가져옴. private void GetFieldData() { if (GameObject.Find("Field" + wpWorker.workingFarmIndex.ToString() + wpWorker.workingFieldIndex.ToString()) == null) { return; } this.workingField = GameObject.Find("Field" + wpWorker.workingFarmIndex.ToString() + wpWorker.workingFieldIndex.ToString()).GetComponent <WPFieldCtrl>(); Debug.Log("asdsdasd:" + wpWorker.workingFieldIndex.ToString()); }
/// <summary> /// UI를 화면에 param 값에 따라 표시합니다. /// </summary> /// <param name="param"></param> public override void SetActive(bool param) { if (param) { WPVariable.timeScale_NewsUI = 0f; WPVariable.timeScale_WPDateTime = 0f; } else { WPVariable.timeScale_NewsUI = 1f; WPVariable.timeScale_WPDateTime = 1f; targetField = null; targetFieldCtrl = null; SetText_Time("예상 시간"); SetText_Money("예상 금액"); } base.SetActive(param); }
// 로직 구현 방식입니다. // 밭을 누르면 GetFieldData로 해당 밭의 WPField 클래스를 받아오려고 합니다. // 만약 아무것도 심지 않은 상태라면 그 밭의 WPField 클래스는 null 값입니다. (사실 IsPlanted == false 인 wpfield가 존재하지만, GetFieldData 에 인자로 넘겨주는 과정에서 null 값을 넘겨주게 됩니다.) // null 이라면 그 밭은 비어있고, null 이 아니라면 그 클래스를 이용해 ui를 표시합니다. // null이라고 해서 새로운 WPField를 바로 생성하지 않습니다. <- 중요. // UI에서 선택한 정보는 WPScrollView_Select에 저장됩니다. ( seedIndex, workerIndex, fertilizerIndex ) // 새로운 WPField를 생성하는 시점은 OnClick_Plant를 클릭했을 때 입니다. public void GetFieldData(WPField wpField, WPFieldCtrl wpFieldCtrl) { if (wpField == null) // 이 경우 밭의 정보가 없는 것으로, 이 때 여기서 새로운 밭을 만들어 넘겨주어야 합니다. { Text text = button_Action.GetComponentInChildren <Text>(); if (text != null) { text.text = "심기"; // Action 버튼의 UI 설정 } ui_FieldStatus.SetActive(false); button_Seed.interactable = true; // Seed 버튼의 활성화 SetSprite_Seed(); scrollView_Select.SetActive(true); // scrollView UI 활성화 } else // 밭의 정보가 있습니다. 이 정보를 활용하여 UI로 표시합니다. { Text text = button_Action.GetComponentInChildren <Text>(); if (text != null) { text.text = "엎기"; } WPGameCommon._WPDebug("Seed Index " + wpField.seedIndex + ":" + "Worker Index " + wpField.workerIndex + ":" + "Fertilizer Index " + wpField.fertilizerIndex); if (wpField.seedIndex != -1) { WPData_Seed seedData = WPGameDataManager.instance.GetData <WPData_Seed>(WPEnum.GameData.eSeed)[wpField.seedIndex]; SetText_Time(string.Format("{0:f2}% 자람", (wpField.GrowthRate * 100f))); instance.SetText_Money( Convert.ToInt32(seedData.ComparePrice).ToString()); string seedDataName = seedData.DataName; string seedDataPath = "Image/Seed/" + seedDataName; Sprite seedSprite = WPResourceManager.instance.GetResource <Sprite>(seedDataPath); SetSprite_Seed(seedSprite); } ui_FieldStatus.SetActive(true); if (wpField.workerIndex != -1) { } else { ui_FieldStatus.Worker.SetActive(false); } if (wpField.fertilizerIndex != -1) { WPData_Fertilizer fertilizerData = WPGameDataManager.instance.GetData <WPData_Fertilizer>(WPEnum.GameData.eFertilizer)[wpField.fertilizerIndex]; string fertilizerDataName = fertilizerData.DataName; string fertilizerDataPath = "Image/Fertilizer/" + fertilizerDataName; Sprite fertilizerSprite = WPResourceManager.instance.GetResource <Sprite>(fertilizerDataPath); ui_FieldStatus.Fertilizer.SetActive(true); ui_FieldStatus.Fertilizer.SetText(fertilizerData.Name); ui_FieldStatus.Fertilizer.SetSprite(fertilizerSprite); } else { ui_FieldStatus.Fertilizer.SetActive(false); } button_Seed.interactable = false; scrollView_Select.SetActive(false); this.targetField = wpField; } this.targetFieldCtrl = wpFieldCtrl; }