コード例 #1
0
ファイル: CPanel.cs プロジェクト: pil4283/past
 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();
 }
コード例 #2
0
    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);
        }
    }