유니티에서 UI로 점수를 보여주는 창을 만들면서
점수 : 10이라는 걸 보이기 위해
"점수 :" 라고 적힌 Text와
숫자가 적힌 텍스트 두 개를 만들어서 사용하곤 했습니다.
하나의 Text에 값을 더하는 걸로 충분히 만들 수 있지 않을까 찾다가
문자열 보간을 활용하면 간단하게 만들 수 있다는 걸 알게 되었고 공유하고자 합니다.
사용 방법은 다음과 같습니다.
먼저 " " 앞에 $를 붙이고, 변수를 넣고자 하는 곳에 {}를 친 후 변수를 넣으면 됩니다.
예시입니다.
float nowTime = 0.5f;
int bestTime = 2;
BestRecord.text = $"최고 점수 : {bestTime} 현재 점수 : {nowTime}";
원래라면
"현재 점수 : " + nowTime.ToString() + " 최고 점수" + bestTime.ToString();
이런 식으로 +를 통해 내용이 추가될 때마다 문자열의 형태로 변환해 붙여가며 만들어야 했지만
문자열 보간을 활용하면 Text 중간에 원하는 변수 값을 그대로 넣어 보기 쉽게 만들 수 있습니다.
또한 문자열 보간을 사용하면
메모리 측면에서의 이점도 챙길 수 있다는 장점이 있습니다.
문자열 개체는 만든 후 변경할 수 없는 특징을 가집니다.
설명을 위한 예시입니다. (마이크로소프트 공식 문서에서 가져왔습니다)
string s1 = "A string is more ";
string s2 = "than the sum of its chars.";
// Concatenate s1 and s2. This actually creates a new
// string object and stores it in s1, releasing the
// reference to the original object.
s1 += s2;
System.Console.WriteLine(s1);
// Output: A string is more than the sum of its chars.
s1과 s2를 더하면 더한 값 (- s3라고 임의로 이름 붙이겠습니다.) 외에도 s1과 s2가 메모리에 남아있습니다.
String을 짧은 시간 동안 (반복문을 활용하여 한 단어씩 출력되도록 만드는 경우 등)
계속 더해가며 표현하는 경우 성능이 크게 저하가 될 수 있습니다.
StringBuilder를 사용해서 위의 문제점을 해결하는 방법도 있다고 하여
다음엔 StringBuilder의 사용법에 대해 알아보고 포스팅해 보도록 하겠습니다.
잘못된 정보나 오류에 대해 지적할 사항이 있다면 댓글로 남겨주세요. 언제든 환영입니다.
'C#' 카테고리의 다른 글
C# 얕은 복사(Shallow Copy) 깊은 복사(Deep Copy) (0) | 2024.12.09 |
---|---|
c# - reflection과 Attribute에 대해 알아보자 (0) | 2024.10.23 |
2024 내일 배움캠프(Unity_6기) _ 사전캠프 7일차(08.21) : String 과 StringBuilder에 대해 알아보자 (0) | 2024.08.21 |
2024 내일 배움캠프(Unity_6기) _ 사전캠프 5일차(08.19) - Random에 대해 알아보자 (0) | 2024.08.19 |
2024 내일 배움캠프(Unity_6기) _ 사전캠프 4일차(08.16) - C# 문법 기초 : Convert, Parse, TryParse (0) | 2024.08.16 |