일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 팀프로젝트
- 오브젝트 풀링
- 가상현실
- 길건너 친구들
- 모작
- 앱 배포
- 드래곤 플라이트 모작
- 포트폴리오
- 오큘러스
- meta
- 유니티
- 드래곤 플라이트
- 유니티 Json 데이터 연동
- 유니티 GUI
- OVR
- 개발일지
- HAPTIC
- input system
- meta xr
- CGV
- 멀티플레이
- 연습
- ChatGPT
- VR
- 유니티 UI
- Oculus
- XR
- Photon Fusion
- 개발
- 팀 프로젝트
Archives
- Today
- Total
EasyCastleUNITY
2023/07/24 복습 본문
복습을 하는 도중, 틀린 부분을 찾아서 고쳐봤다.
//인벤토리 정렬 하는 부분
//모든 요소들을 하나 앞으로 보낸다.
//하나씩 넣었을 때만 기능
for(int i=1; i < items.Length; i++)
{
items[i - 1] = items[i];
}
return searchItem;
마지막 연습에서 정렬을 하는 부분이다.
이런식으로 코드가 되면 그냥 배열의 요소가 앞으로 하나씩 전진하는 결과가 있을 뿐이다.
그래서 다른 방법을 찾았고, 강사님이 말해주신 방법인 다른 배열에 넣은 다음,
다시 원래 배열에 넣는 방법을 생각해 보았다.
public Item GetItemByName(string name)
{
int emptyNumber = 0;
for (int i = 0; i < items.Length; i++)
{
if (items[i] != null)
{
if (items[i].Name == name)
{
emptyNumber = i;
searchItem = items[i];
items[i].itemCount--;
if (this.items[i].itemCount == 0)
{
this.items[i] = null;
}
}
}
}
//앞으로 정렬
Item[] newItems = new Item[this.capacity];
int itemPointer = 0;
for (int i = 0; i < this.items.Length; i++)
{
if (items[i] != null)
{
newItems[itemPointer] = items[i];
itemPointer++;
}
}
items = newItems;
return searchItem;
}
이런 식으로 Item에 대한 배열을 하나 만든다음 for문을 통해
원래 items 배열에 접근하였습니다. 그 다음 if문을 통해 items의 배열 요소들 중 null이 아닐때만
새로운 배열에 배열 요소를 저장하게 했다.
이러한 방식을 통해 그냥 앞으로 보내는 방식에서, 중간이 비워도
제대로 정렬이 되도록 하는 방식으로 다시 했다.
그리고 메서드 override 와 overload에 대해서 다시 살펴보고 상속에 대해 다시 공부했다.
'C#프로그래밍' 카테고리의 다른 글
1차원 배열을 통한 인벤토리 생성 (0) | 2023.07.25 |
---|---|
배열 간단 복습 (0) | 2023.07.25 |
배열 연습 Inventory(정렬 안함, 정렬함 + 아이템 개수 스택) (0) | 2023.07.24 |
2023/07/24- 클래스 및 메서드 활용 (0) | 2023.07.24 |
플레이어,무기,몬스터 (OOP 연습 및, 반환값, 매개변수 연습) (0) | 2023.07.21 |