스파르타 내배캠 31일차 TIL
C1조_ 1조라도 안 보이면

제출 D-Day가 딱 24시간 남았다. 개발 해야할 기능이 꽤 남아서 걱정이다... 내일 중으로 다 끝낼 수 있을까? UI 변경에 관한 코딩도 다시 해야할 것 같아서 시간이 많이 촉박할 것 같다ㅜ 오늘 TIL 쓰고 계속 작업해야지... 아무튼 오늘 작업한 내용에 대해서 정리 해보려고 한다!
아이템 상호작용

화면 중앙의 CrossHair 중앙 기준점을 보면 처음에는 그냥 흰색 점이다가 상호작용이 가능한 물체가 있다면 아이콘이 바뀌게 구현하였다. 이렇게 해서 평범한 아이템과 구분 짓게 하였고 후에 gif처럼 가까운 상태면 아이템의 아웃라인을 추가하는 등 표시가 될 수 있게끔 할 계획이다. 이 코드는 꽤 간단했다. crosshairs라는 스프라이트 배열을 만들고 변경할 이미지를 넣어줬을 뿐이다.
//ray에 아이템이 찍힐 때
if(Physics.Raycast(ray, out hit, maxCheckDistance, layerMask))
{
if(hit.collider.gameObject != curInteractGameObject)
{
curInteractGameObject = hit.collider.gameObject;
curInteractable = hit.collider.GetComponent<IInteractable>();
SetCrossHairChange();
}
}
else
{
curInteractGameObject = null;
curInteractable = null;
// 크로스헤어 변경
crossHair.sprite = crosshairs[0];
crossHair.transform.localScale = new Vector3(1f, 1f, 1f);
}
//아이콘 변경
private void SetCrossHairChange()
{
crossHair.sprite = crosshairs[1];
crossHair.transform.localScale = new Vector3(3f, 4f, 3f);
}
인벤토리

인벤토리는 최대한 간단하게 만들었다. 화면 오른쪽으로 인벤토리 창을 띄우고 아이템 슬롯을 채웠다. 현재는 아이템을 먹으면 인벤토리 안에 아이템이 들어오게 되고 누적되는 아이템이라면 슬롯 왼쪽 아래 숫자를 표기하게 했다. 아직 완성은 아니다. 내일 오전 중으로 아이템을 먹기 전 슬롯의 디자인을 변경해야 하고 인벤토리 창을 열게 되면 게임이 중지되게 수정해야 한다. 또한 한글 폰트를 tmp로 만들어서 넣어야 한다. 현재는 한글 폰트가 없어 네모로 나오고 있다.
// 플레이어가 가지고 있는 itemData를 인벤토리로 가져옴
public void AddItem()
{
ItemData data = CharacterManager.Instance.player.itemData;
if(data.canStack)
{
ItemSlots slot = GetItemStack(data);
if(slot != null)
{
slot.quantity++;
UpdateUI();
CharacterManager.Instance.player.itemData = null;
return;
}
}
ItemSlots emptySlot = GetEmptySlot();
if(emptySlot != null)
{
emptySlot.item = data;
emptySlot.quantity = 1;
UpdateUI();
CharacterManager.Instance.player.itemData = null;
return;
}
CharacterManager.Instance.player.itemData = null;
}
// 가져오면 ui를 수정함
private void UpdateUI()
{
for(int i = 0; i < slots.Length; i++)
{
if (slots[i].item != null)
{
slots[i].Set();
}
else
{
slots[i].Clear();
}
}
}
마무리하며
하루동안 한 양이 이 정도 밖에 안 된다고? 그렇다. 아니 사실 복구하는 과정이 오래 걸렸다. 게임 맵을 고르는 데 시간이 걸렸고 전체 구조화된 맵을 가져오는 데 시간이 걸렸고 에셋을 가져오면서 날아간 게임 씬을 복구하는 데 시간을 썼다... 원래라면 오늘 ui도 마음에 들게 마무리 하고 아이템 사용과 Ai 적 생성까지 했을텐데... 아무리 계획을 세워두고 한다고 해도 생각지도 못하는 일 때문에 시간을 사용하는 일이 많은 것 같다. 최대한 오늘 자기 전까지 UI를 수정하고 아이템 사용까지 구현한 후에 자야할 것 같다😭 그래야 내일의 내가 좀 편하겠지
'Unity > TIL' 카테고리의 다른 글
유니티 숙련 팀프로젝트 게임 기획 (0) | 2024.06.03 |
---|---|
3번째 과제 마무리 (1) | 2024.05.30 |
3번째 개인 프로젝트 구상 및 플레이어 작업 (0) | 2024.05.28 |
Unity 조명(Lighting) (0) | 2024.05.27 |
Input System (1) | 2024.05.24 |