Post

[ STUDY/유니티 ] 2022. 8. 2. 19:43

유니티 프로젝트에서 UI에 나타내는 Text중에 중간중간 변수의 값이 들어가야하는 상황이 나타났습니다.

하지만, 문자열을 쓰다가 중간에 다른 변수값을 string으로 변환해서 또 집어넣고, 또 다음문장이 들어왔다가 또! 다른 변수값을 string으로 변환해서 ..! 우와 완전 귀찮네요!

그리고 string에서 + 연산자를 통해 문자열을 합쳐줄때마다 새로운 인스턴스가 생성되어 결국 가비지가됩니다!

 

string 중간중간 변수의 값이 들어가야하는 상황이 발생했을때, 전체를 모두 문자열로 치환하고 사용한다면

1. 귀찮음

2. +연산자로 인한 가비지생성( 이는 StringBuilder로 해결가능)

 

그러던와중에 "문자열보간"이라는 기능을 찾았는데, 일단 보면 바로 이해가 됩니다

int charLevel;
int charMaxHP;

//안좋은 예
 Window.transform.GetChild(2).GetComponent<Text>().text  = "캐릭터 레벨: "+ charLevel.toString() +"\n 캐릭터 최대HP : "+ charMaxHP.toString();
 
 //문자열 보간
 Window.transform.GetChild(2).GetComponent<Text>().text  = $"캐릭터 레벨: {charLevel} \n 캐릭터 최대HP :  {charMaxHP}"

 

너무 간단해서 딱히 제가 적을것도 없지만, $ 라는 특수문자를 문자열앞에 세워두기만 하면 보간문자열기능을 바로 사용할 수 있습니다. 

 int apple=5,grape=6;
 //문자열 보간은 변수끼리 계산도 가능해요!
 Window.transform.GetChild(2).GetComponent<Text>().text  = $"사과랑 포도를 더하면: {apple + grape}"
 //11로 출력이됩니다 :D

 

참고로 같은 자료형끼리는 계산도 가능하니, 정말 편리합니다! :D 최고에요! XD

 

 

 

 

 

+) 여담이지만.. 저는 적용할려고 하였으나 따로 고려할 사항들이 생겨 못했습니다.. 그래도 엄청 유용해보이니 다들 개발 화이팅! 

▲ top