본문 바로가기

개발자_뉴비일지

내일배움캠프 Unity 35일차 TIL - START TeamProject03

string keyword="START TeamProject03";

1.  UI의 난

 

>>기본적으로 현 상태를 보여줄 UI와 타워를 건설하려 할때 보여줄 UI

사실 저번주 금요일이 팀프로젝트 시작인 날이었는데 그날  만들어 놓은 것..TIL을 못썼었다.

 

3.일시정지

public void PauseGame()//일시정지
{
    Time.timeScale = 0;
    pauseBtn.SetActive(false);
    resumeBtn.SetActive(true);
}

public void ResumeGame()//플레이
{
    Time.timeScale = 1;
    pauseBtn.SetActive(true);
    resumeBtn.SetActive(false);

TopPanel에 버튼기능은 일시정지/플레이 버튼밖에 없었고, 일단 일시정지 버튼을 누르면 Time이 관여하는 것들을 멈추게 설정해 놓았다. 

 

 

2. ShopPanel띄우기

 

가운데 분홍색 sprite가 타워를 건설할 수 있는 곳으로 임시로 만들어 놓고 클릭하면 shopPanel이 뜨도록 하는 것.

상당히 시간을 많이 잡아먹었다...ㅜㅠ

 

일단 저 분홍이한테 collider를 달아준 다음, 스크립트를 하나 만들었다.

 private void OnMouseDown()
 {
     UIMgr.SetTarget(this.transform);
 }

>> OnMouseDown은 마우스 왼쪽버튼으로 클릭하면 함수안의 내용을 실행시켜 준다.

 

<UIManager>

 [SerializeField] Transform towerPosition;
 Camera mainCamera;

 public UI_ShopPanel shopPanel;
 public UI_TopPanel topPanel;

 void Awake()
 {
     shopPanel.Init();
 }

 public void SetTarget(Transform towerPosition)
 {
     this.towerPosition = towerPosition;
     //transform.position = mainCamera.WorldToScreenPoint(target.position);
     shopPanel.OpenShop(towerPosition);
 }

 

<UI_ShopPanel>

Camera mainCamera;

public void Init()
{
    mainCamera = Camera.main;
    CloseShop();
}

public void OpenShop(Transform towerPosition)
{
    gameObject.SetActive(true);
    transform.position = mainCamera.WorldToScreenPoint(towerPosition.position);
}

public void CloseShop()
{
    gameObject.SetActive(false);
}

 

메인카메라를 가져와서 towerPosition의 좌표를 월드포지션으로 바꿔준 다음 클릭하면 shopPanel이 그자리에 뜨게 된다.

X버튼을 누르면 패널은 닫히게 된다.

 

마무리

ui연동하는 작업이 생각처럼 안된다ㅜㅠ 어려워서 시간이 많이 걸린듯 하다.

내일 돈과 구매 및 업그레이드 버튼을 연동해야겠다!

 

.

.

.

with 용이