Unity 내배캠 TIL

Unity 게임 개발 최종 팀 프로젝트 (10주차 3일)

오늘도즐겨 2024. 11. 28. 02:11

🔥 11/27 수요일 목표 🔥

🔎  팀 프로젝트 UI에 정보 업데이트 - 로직 구현

 

📌메모리 구조

값 형식 = Stack 영역메모리 ( C#기본 자료형 타입 : int, float, bool, char... / 구조체 / enum)

참조형식 = Heap 영역메모리 ( string, class, 배열, interface, delegate)

 

String은 메모리의 파편화를 만드는데, 그것을 피하려면 ?

보간문자열을 사용한다 ex . $"유저이름: {name} Lv. {level}"

StringBuilder를 사용한다.

void SetNameTxt(string name, int level)
{
	StringBuilder sb = new StringBuilder();
    sb.Append("유저이름 : ");
	sb.Append(name);
    sb.Append(" Lv. ");
    sb.Append(level);
    uiNickName.text = sb.ToString();
}

 

기본적으로 StringBuilder는 16칸의 데이터를 담을 메모리영역을 할당 해주는데,

이를 초과할 시, 32칸! 즉 2배의 메모리영역을 재할당 해준다.

❓이를 피하고자, 미리 할당할 사이즈를 정해줄 수 있다.

    어떻게??????

 

💡 초기 용량을 직접 설정

      - StringBuilder(int capacity)

 

      초기 문자열과 함께 생성.
        string str = "~~~~";

     - StringBuilder(String str)

      용량은 (16 + str.length())으로 설정됨      

// 초기 용량을 50으로 설정
StringBuilder sb = new StringBuilder(50);

// 문자열 추가
sb.append("Hello, World!");
System.out.println(sb.toString());

 

 

 

 

 

🔥 11/28 목요일 목표 🔥

🔎  팀 프로젝트 UI에 정보 업데이트 - 로직 구현