[Unity]TIL (12) | 2023.08.08

kjg5370·2023년 8월 8일
0

TIL

목록 보기
12/91

오늘은 유니티 미니 프로젝트를 하면서 어려웠지만 원하는 결과가 나온 경험들을 적어보겠습니다.
미니프로젝트의 내용은 카드 뒤집기 게임으로 같은 카드가 나오면 사라지면서 점수를 얻는 게임입니다. 참고로 카드의 그림들은 미니 프로젝트를 같이 진행하는 팀원들의 사진을 이용했습니다.

요구사항

• 매칭 성공 시, 팀원의 이름 표시 / 실패 시 실패 표시 (종료 시 끝! 나타나는 것처럼)

첫번째 요구사항의 팀원의 이름을 표시하는 방법은 생각나는게 많이있었지만
저는 일단 팀원들의 사진을 모두 Resources 폴더에 넣은다음 파일 이름을
각자 표시하고 싶은 이름으로 정한 뒤 Resources 내부에 file 폴더를 따로 만들어서 넣고
ctrl + D로 전체를 복사한 다음 스프라이트 배열을 생성하고

Resources.LoadAll("file");

이 코드로 리소스들을 배열에 넣은 뒤 나머지 코드를 실행 후 각 스프라이트 들의 이름들을 가져와
따로 만들어둔 UI에 바로 나올 수 있게끔 코드를 짜 보았습니다.

이렇게 했을 때 문제점이 있었는데 카드를 매칭을 해야되는데 이미지의 파일 이름으로 두 카드를 비교하다 보니
같은 이름을 가진 이미지들이 유니티 폴더 내에서 image 와 image1 이렇게 자동으로 분류가 되었습니다.

그래서 이름을 가져와서 비교를 하는 코드에 스프라이트 이름.TrimEnd 를 써서 뒷 부분을 날렸을때
같은 카드인지 비교하는 방식으로 코드를 짜 보았습니다.
이과정에서 새로 배운것은 Regex.Replace라는 메서드 였습니다.

정규표현식을 사용하여 문자열 치환

정규 표현식: 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어.

정규 표현식은 String.Replace 메서드로는 할 수 없는 유연한 처리를 수행할 수 있습니다.

정규 표현식을 사용해서 치환하려면 Regex 클래스에 있는 Replace 메서드를 사용합니다.

함수 구문

= REGEXREPLACE ( Text , Regular_exp , New_text )

Text - 대상문자열

Regular_exp - 대체할 문자열을 찾는 정규식으로 표현된 식, Text에서 일치하는 모든 부분이 대체됨

New_text - 대체할 새로운 문자열

Regex.Replace 메서드는 지정할 입력 문자열(첫 번째 인수) 안에서 정규 표현식(두 번째 인수)에 일치하는 모든 부분 문자열을 세 번째 인수에 지정한 문자열로 치환.

제가 한 것보다 깔끔하고 좋은 방법이 많을 수도 있지만 오늘 새로운 것을 알았고 그걸 사용해서 원하는 기능을 만들어서 오늘 하루는 뿌듯했습니다. 앞으로 더 유니티에 익숙해져서 제가 원하는 기능들을 좀 더 효율적인 방법을 사용하여 만들 수 있는 날이 오면 좋겠습니다.🐈

profile
학생입니다

0개의 댓글