현재 듣고 있는 곡
ピノキオピー - ノンブレス・オブリージュ
피노키오p 특유의 센스가 잘 녹아난 노래이다, 개인적으로 top 10안에 넣는 곡들 중 1개이다
이어서 상점 UI를 만들어 보자
기본적으로는 버튼을 남발하는게 가장 쉬운 방법인 것 같다
우선, 기본적인 구입으로는
1. 능력치
2. 포션
3. 호감도 아이템
이렇게 판매할 계획이다
큰 틀을 먼저 만들어 보자
제작중 굴림 폰트의 한계를 느꼈다, 비트 느낌이 강한 폰트로 변경하기로 결정했다
폰트 추가중 오류가 발생했다, 폰트 파일 이름에 한글이 들어가면 인식을 못하는 모양이다
혹시나 이 글을 보는 분이 있다면 조심하길
비트 비트한 상점 틀을 완성했다
나중에 필요에 따라 이미지를 더 넣으면 퀄리티를 높일 수 있을 것 이다
이제 상점의 세부 무품들을 완성해 보자
일단, 능력치, 포션같은 버튼을 누르면 다음 메인 버튼이 false가 되고 다음 버튼들이 true가 되게 하는 매커니즘을 만들어야 하니 상점 버튼 관리 오브젝트를 만들어 준다
이앞, 하드코딩 있다
public class shop_control : MonoBehaviour
{
public int shop_menu = 1; // 기본 메뉴
public GameObject main_btn;
public GameObject stat_btn;
public GameObject potion_btn;
public GameObject like_item_btn;
// Update is called once per frame
void Update()
{
if(shop_menu == 1){ // 메인
main_btn.SetActive(true);
stat_btn.SetActive(false);
potion_btn.SetActive(false);
like_item_btn.SetActive(false);
}
else if(shop_menu == 2){ // 스탯 상점
main_btn.SetActive(false);
stat_btn.SetActive(true);
potion_btn.SetActive(false);
like_item_btn.SetActive(false);
}
else if(shop_menu == 3){ // 포션 상점
main_btn.SetActive(false);
stat_btn.SetActive(false);
potion_btn.SetActive(true);
like_item_btn.SetActive(false);
}
else if(shop_menu == 4){ // 호감도 상점
main_btn.SetActive(false);
stat_btn.SetActive(false);
potion_btn.SetActive(false);
like_item_btn.SetActive(true);
}
}
}
기적의 하드코딩을 해준다
그후 관리될 부모 오브젝트를 만들어 넣어준다
이제 메인에서 했던것을 반복하면 된다
근데, 그전에 메인 버튼을 true로 만드는 버튼 스크립트를 미리 만들어 두자
public void shop_back_btn(){
if(shop.shop_menu != 1)
shop.shop_menu = 1;
}
이 함수를 가진 버튼을 누르면 메인 상점메뉴가 아닐시, 강제로 메인으로 보내버린다
스텟창에 사용할 아이콘 에셋을 추가한다
능력치 상점 메뉴를 완성했다
이제 코딩의 시간이다
public void shop_stat(){
shop.shop_menu = 2;
}
public void shop_postion(){
shop.shop_menu = 3;
}
public void shop_like(){
shop.shop_menu = 4;
}
버튼을 누르면 버튼 관리 오브젝트의 변수를 수정한다
public class shop_back_btn : MonoBehaviour
{
public shop_control shop;
void Update()
{
if(shop.shop_menu != 1){
gameObject.SetActive(true);
}
else
gameObject.SetActive(false);
}
}
되돌아가기 버튼은 따로 관리한다
근데 setactive가 false일때 true로 만들 수 있던가?
해보면 알겠지~~~
박치기 공룡 출동!
그렇다 안된다
새로운 지식!
따로 관리하도록 하자
전혀 관련 없는 코인 표시 이미지에 관리 스크립트를 넣는다
일일히 개별 관리 오브젝트나, 통합 오브젝트를 만드는것 보다, 항상 존재하는 오브젝트에 엮는게 좀더 깔끔해 보일 수 있다고 생각한다
public GameObject shop_back_btn;
public shop_control shop;
void Update(){
if(shop.shop_menu != 1)
shop_back_btn.SetActive(true);
else
shop_back_btn.SetActive(false);
}
버튼 관리의 shop_menu의 값이 1이 아니면 = 메인 버튼창이 아니면
돌아가기 버튼을 활성화 한다
정상 작동 한다
대충 나머지는 노오오오가다 하면 되는 부분이다