728x90
오늘은 간단하게 상점을 구핸해봤다.
npc 빈오브젝트 생성후 이렇게 box 콜리더를 생성해서 범위를 설정해주고
스크립트를 넣어준다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class NpcTrigger : MonoBehaviour
{
public GameObject ShopCanvas; // 트리거안에 왔을때 켜줄 캔버스
public GameObject[] off; // 상점열기 했을때 꺼줄 것들
public GameObject on; // 상점열기했을때 켜줄것들
private void OnTriggerEnter(Collider other)
{
if(other.tag =="Player" )
{
ShopCanvas.SetActive(true);//트리거안에 들어오면 버튼 활성화
}
}
private void OnTriggerExit(Collider other)
{
if (other.tag == "Player")
{
ShopCanvas.SetActive(false);//트리거벗어나면 비활성화
}
}
public void ShopOpenButtonClick() // 상점 버튼 클릭시
{
CharacterManger.instance.CanMove = false;// 캐릭터 이동 막고
for(int i=0;i<off.Length;i++) // 꺼줘야할것들 배열로 받아서 다꺼주고
{
off[i].gameObject.SetActive(false);
}
on.SetActive(true);
}
public void ShopCloseButtonClick()//x버튼 클릭시
{
CharacterManger.instance.CanMove = true;//캐릭터 이동가능
for(int i=0;i<off.Length;i++)//다시켜주고
{
off[i].gameObject.SetActive(true);
}
on.SetActive(false);//캔버스 꺼주고
}
public void purchaseButtonClick(int num)
{
switch (num)
{
case 0:
Item myhp = GameManger.instance.MyItemList.Find(x => x.Name == "초보자용 HP회복 포션");//내아이템목록에서 네임 같은걸 찾고
if(myhp == null)// null 이라면
{
GameManger.instance.MyItemList.Add(GameManger.instance.Alltem.Find(x=>x.Name== "초보자용 HP회복 포션")); // 내아이템 리스트에 추가해주고
}
else // null이 아니면
{
int i = int.Parse(myhp.Number)+1; // 내아이템 리스트 hp 포션 갯수 int화 시킨후 +1
myhp.Number = i.ToString();// 내아이템 갯수에 넣어준다
}
break;
case 1:
Item mymp = GameManger.instance.MyItemList.Find(x => x.Name == "초보자용 MP회복 포션");//위와같음
if (mymp == null)
{
GameManger.instance.MyItemList.Add(GameManger.instance.Alltem.Find(x => x.Name == "초보자용 MP회복 포션"));
}
else
{
int i = int.Parse(mymp.Number) + 1;
mymp.Number = i.ToString();
}
break;
}
GameManger.instance.DrawQuickslot();//퀵슬롯에 등록되어있을수도 있으니 퀵슬롯그려주기
}
}
그러면 간단한 상점구현 끝
상점구현하면서 갑자기 인벤토리가 먹통이가서 그걸 해결하느라 오늘 시간을 너무많이써서 알고리즘 문제는 내일 오전에 풀 예정이다.
반응형
'개인프로젝트 3D RPG 개발일지' 카테고리의 다른 글
27.퀘스트시스템 구현 (0) | 2022.07.27 |
---|---|
프로젝트 진행글이 없던이유 (3) | 2022.07.26 |
25.(유니티포폴)퀵슬롯구현 (0) | 2022.07.19 |
24.(유니티포폴)퀵슬롯 (0) | 2022.07.18 |
23.(유니티포폴) 데미지 텍스트 구현 (0) | 2022.07.15 |