📁 개발 히스토리 22

Git / GitHub 가이드 문서

비개발자를 위한 Git과 GitHub 다운로드 및 사용 가이드 문서.  1. 형상관리(버전 관리 시스템 Version Control System)란? git(깃)은 버전 관리 시스템으로 작업중인 프로젝트의 각 버전을 저장 및 관리하는 도구다.이런 버전을 관리하고 다듬는 이유는 여러가지가 있는데  A. 백업 및 복구  -  프로젝트에 중대한 오류가 발생할 경우 이전 버전으로 복원하기 위해B. 협업  -  여러 사람이 동시에 한 프로젝트에서 작업하기 위해C. 변경점 관리  -  협업하던 중 오류가 났을때 어떤 지점에서 발생했는가 원인을 찾기 위해D. 버전 관리  -  동시에 여러 버전을 작업하기 위해 같은 이유가 대표적이다.  그중에서도 Git은 아래와 같은 구조로 작동한다.그냥 냅다 보면 이해하기 어렵지만..

유니티 - 가이드 문서

비개발자를 위한 유니티 다운로드 및 사용 가이드 문서. 1. 유니티 계정 생성https://unity.com/kr Unity 실시간 개발 플랫폼 | 3D, 2D, VR 및 AR 엔진엔터테인먼트, 영화, 자동차, 건축 등의 분야에서 활용할 수 있는 실시간 3D 게임, 앱, 경험을 만들고 성장시켜 보세요. 지금 바로 Unity를 시작해 보세요.unity.com 우선 유니티 사이트에서 계정을 생성한다. 혹시 라이선스 관련 문구가 뜬다면 Unity Personal을 선택한다. 아래같은 문구도 라이선스 등록해달라고 하는 것이다. Agree 눌러가며 개인용으로 등록해준다. 유니티는 연간 10만 달러 이상 버는 회사부터 사용료를 청구한다. 무료여도 주기적으로 라이선스를 갱신해달라고 하는데 매번 개인용 선택하면 된다...

유니티 - 인벤토리 구현하기(6)

얼추 그럴듯한 인벤토리가 완성되어간다!다음은 가볍게 도구 사용하는 모션을 추가해보았당.  꾹 누르면 작동한다는 것을 설명하기 위해작은 흰색 원으로 애니메이션 상태를 표기했다.  IV_Item HoldingItem = Inventory.HotbarSlots[Inventory.SelectedSlotIndex].CurrentItem; if (Input.GetMouseButton(0) && HoldingItem.Type == IV_Item.ItemType.Tool) { switch (HoldingItem.Name) { case "손도끼": PlayerState = Player..

유니티 - 인벤토리 구현하기(5)

유니티 - 인벤토리 구현하기(2) 편에서 구현해놨던 GainItem의 함수를좀 더 깔끔하고 명확하게 리팩토링하기로 했다. 💡 : 우선 이미 같은 아이템이 인벤토리에 있다면 그쪽에 추가하고 HotbarSlot에도 BagSlot에도 없으면       빈 슬롯을 찾아서 그곳에 추가하도록 해야겠다. public void GainItem(int Itemnum, int Itemcount = 1) { int index = HotbarSlots.FindIndex(x => x.CurrentItem.ItemNum == Itemnum); if(index != -1) { HotbarSlots[index].AddCount(Itemcount); ..

유니티 - 인벤토리 구현하기(4)

다음은 Q 키를 통해 핫바에 있는 아이템을 바닥으로 뱉는 기능.    우선 핫바로 아이템을 버리려면 선택 슬롯을 마우스 휠로 편하게 돌려야한다.Input.mouseScrollDelta를 통해 선택 슬롯을 변경한다. 다음은 Q키를 눌렀을때 아이템이 있다면 IV_DropItem 프리팹을 통해 새로 드롭 아이템을 생성.이후에는 핫바 슬롯에 있는 아이템 갯수를 1개 줄인다.  if (!Inventory.gameObject.activeSelf) { Vector2 WheelValue = Input.mouseScrollDelta; if (WheelValue.y 0) { Inventory.ReduceSele..

유니티 - 인벤토리 구현하기(3)

이동과 아이템 획득을 구현했으니하단 핫바와 아이템 이동, 아이템 툴팁 출력을 구현한다. 하단 핫바의 경우 가장 윗줄 인벤토리와 연동되어있다.Hotbar용 슬롯 프리팹을 만들고 간단하게 기존 Item을 참고하여 새로고침하도록 되어있다.   public void Toggle() { if (this.gameObject.activeSelf) { HideDescription(); if(SwapSlotBox != null) { SwapSlotBox.OffHighLight(); SwapSlotBox = null; } this.gam..

유니티 - 인벤토리 구현하기(2)

다음은 본격적으로 인벤토리를 만들 차례.우선 Item 클래스를 만들어 데이터를 옮겨다닐 상자를 만들고Slot.cs가 아이템을 1개씩 옮겨다니며 인벤토리에서 작동해야하는 기능을 넣은 다음Inventory.cs에서는 슬롯을 관리하게끔 만들고자 했다. [System.Serializable]public class IV_Item{ public int ItemNum; public string ItemName; public string ItemDescript; public int ItemCount; public Sprite ItemSprite;} 아이템 구분할 번호, 이름, 툴팁에 출력할 설명, 갯수, 스프라이트로 정했다. public class IV_Slot : MonoBehaviour{..

유니티 - 인벤토리 구현하기(1)

어느 게임이든 인벤토리는 거의 무조건 구현할 필요가 있다.이번에는 간단히 2D 서바이벌 게임에서 주로 사용되는 인벤토리를 구현해본다.  3주차: 인벤토리 시스템 구현구현목표 :1. 가지고 있는 아이템 인벤토리 칸에 표시2. 인벤토리에 아이템 추가 및 삭제3. 아이템에 마우스 올리면 툴팁 출력4. 우클릭으로 아이템 버리기 및 사용5. 아이템 드래그로 인벤토리 내에서 위치 변경추가 디벨롭a. 인벤토리 핫바 구현 (단축키 설정, 아이템 사용, 아이템 드랍 등)     가장 먼저 타일맵을 이용해서 맵을 찍고 캐릭터 이동을 구현해줬다.   타일맵은 패키지 매니저로 추가해주면 윈도우 창에서 켤 수 있다  팔레트에 잘라둔 스프라이트를 드래그해 넣고 팔레트에서 복사한 스프라이트를 그리드에 찍으면 된다.그리드는 스프라이..

유니티 - 캐릭터를 따라다니는 텍스트 박스(3)

마지막으로 조금 더 디벨롭 해서TMP가 HTML처럼 string을 통해 볼드, 이탤릭체, 사이즈, 색상 변경 등이 가능한 점을 고려해예외처리를 추가했다.   Rich Text 관련 문서(https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/manual/RichText.html) 간단하게 태그를 이용해서 와 사이의 문자는 굵게 되는 식이다.볼드 : 이탤릭 : 색상 : 크기 :     예외처리는 간단하게 여는 꺾쇠 가 나올때까지 출력할 문장Count를 증가시키는 방식으로 했으나 연속으로 꺾쇠가 등장하는 경우 열린 꺾쇠를 감지하지 못하는 오류가 발생해서닫는 꺾쇠 이후 다시 열린 꺾쇠가 등장하는 지 확인하고 for문을 탈출하지 못하도록 수정했다.  p..

유니티 - 캐릭터를 따라다니는 텍스트 박스(2)

텍스트의 애니메이션은 일련의 과정이 있다.1. 작은 점에서 커지는 상자 애니메이션2. 모든 텍스트가 출력될 수 있게 충분히 커지는 상자3. 상자에 꽉 차게 출력되는 텍스트4. 텍스트가 사라지고 다시 애니메이션의 마지막 프레임 사이즈로 줄어드는 상자5. 사라지는 애니메이션    커지고 작아지는 애니메이션은 스프라이트로 존재해서 간단히 애니메이터로 구현했다. 문제는 출력될 string 길이에 따라 미리 사이즈를 키우고 나서 출력해야한다는 점이었다. 여기서 문제가 발생한다...나는 지금 Substring으로 전체 문장중 출력할 문장만 TextMeshPro의 Text에 넣어주는 중...폰트나 사이즈에 따라 완성된 텍스트의 사이즈가 각양각색인데 어떻게 TMP에 넣어보지도 않고 전체 사이즈를 알아내지??? 물론....