public void UpgradeHPButton() { if (_stat._maxHp < _stat._hplimit) { if (UPGRADEGOLD <= _playerManager.GetGold()) { _stat.MaxHpUp(); _playerManager.GoldDown(50); _logText.text = ""; } else { _logText.text = "돈이 부족합니다"; } } else { _logText.text = "HP가 최대치에 도달했습니다."; } UpdateData(); }
IEnumerator BuildSoliderCoroutine() { while (true) { if (Input.GetMouseButton(0) && !_qPanel.activeInHierarchy) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { int layer = hit.transform.gameObject.layer; if (layer == LayerMask.NameToLayer("Tile")) { bool isBuild = hit.transform.gameObject.GetComponent <CTile>().GetIsBuild(); //true면 이미 생성된곳,생성불가 false면 생성가능 if (isBuild) { _qPanel.SetActive(true); _workPanel.SetActive(true); //타일에 생성된 유닛을 가져와서 패널에 넣음 _qPanel.SendMessage("GetUnit", hit.transform.gameObject.GetComponent <CTile>()._unit); } else { if (_playerManager.GetGold() < 100) { MessageBox("돈이 부족합니다."); //StartCoroutine("ViewLogMessageCoroutine","돈이 부족합니다"); } else { //터치한 자리에 오브젝트 생성 타일 정 가운데에 넣기위해 자식으로 들어갔다가 위치조정 후 다시 나옴 GameObject soldier = Instantiate(_soldier, transform.position, Quaternion.identity) as GameObject; soldier.transform.SetParent(hit.transform); soldier.transform.localPosition = new Vector3(0.0f, 0.0f, 0.0f); soldier.transform.SetParent(null); //해당 타일에 오브젝트를 보냄(업그레이드 관리용) hit.transform.gameObject.SendMessage("AttachUnit", soldier); //터치한 자리의 타일색을 빨간색으로 변경 후 설치불가지역으로 만듬 hit.transform.gameObject.SendMessage("ChangeMaterial", 2); _playerManager.GoldDown(100); //오브젝트관리를 위해 매니저에 오브젝트를 리스트로 집어넣음 _playerManager.AddSoldier(soldier); yield return(new WaitForSeconds(0.5f)); } } } else { MessageBox("유효한 장소를 터치해주세요"); } } } yield return(null); } }