본문 바로가기

Unity 엔진 공부/project27

project2 개발일지 - 7 [Setting UI 기능 연결 마무리] Setting UI 기능 연결 마무리 목표키 설정 값을 입력 받고 저장하는 기능을 완성한다.로비에서 게임 설정을 눌렀을때 설정창 연결을 하고 esc 버튼을 통해다시 로비 창으로 넘어갈 수 있게 한다. 1. 버튼 ui 배치우선 설명하는 칸 옆에 버튼 ui를 배치해준다.상호작용 가능한 ui는 주황색을 기본적으로 배치한다.그리고 클릭 되었을 때는 빨간색으로 해당 ui가 클릭되었음을 알리며,그때 입력되는 값으로 키설정을 변경해주는게 목표다. 2. 코드작업private void ClickedKeySettingButton(PointerEventData data){ selected = data.pointerClick; selected.GetComponent().color = Color.red;} 다음은 키셋팅 버튼이.. 2025. 8. 11.
project2 개발일지 - 6 [Setting UI 기능 연결2] Setting UI 기능 연결2 목표세팅을 저장하고 되돌리는 기능을 구현한다.버튼은 비활성화 상태에서 세팅을 바꿀 경우 활성화된다.이전 상태값과 현재 상태값을 비교해야 할 것 같다. 1. 저장, 되돌리기 버튼오른쪽 위에 비활성화 상태의 버튼을 두개 배치한다.Interactable을 꺼주면 비활성화 상태가 된다. 2. 이전 상태 저장하기저장 버튼을 활성화 하려면 이전 상태와 현재 상태를 비교해야한다.따라서 리스트로 각 설정의 값을 튜플 형태로 저장해준다.private List _sliders = new();private List _keys = new(); 이제 설정 UI가 켜질때 SettingManager에서 값을 받아와 이전상태를 저장해준다._sliders.Add((GetSlider((int)Slider.. 2025. 7. 29.
project2 개발일지 - 5 [Setting UI 기능 연결] Setting UI 기능 연결 목표세팅값을 파일로 저장할수 있게한다.인터렉션된 수치를 표시한다. 1. 폰트 문제 해결이전 폰트를 사용했을 때 몇몇 글자가 깨지는 현상을 발견했다.이에 따라 폰트 에셋을 변경하였다.또한 기본적으로 제공되는 폰트 에셋이 디폴트값으로 들어가기 때문에 이를 변경한다.프로젝트 폴더에 tmp settings라고 검색하면 에셋 하나가 나온다.이곳에서 인스펙터의 default font asset을 사용하려는 에셋으로 변경한다. 이제 기존 문제가 있던 에셋을 사용하던 Text들의 폰트 에셋을 변경해준다.나같은 경우 모든 text를 사용하는 객체는 Text 로 이름을 맞추었기 때문에 일괄적으로 변경이 편했다. 2.Json과 폰트 연동 (반복 작업 줄이기)일단은 이전처럼 연결을 해준다. 일.. 2025. 7. 28.
project2 개발일지 - 4 [Setting UI] Setting UI 목표기획자가 제작한 설정 UI의 틀을 만드는것을 목표로한다.많은 ui요소가 존재하기에 지루한 반복작업이 될 것으로 보인다.json으로 지정한 이름에 맞게 GameObject들의 이름을 수정한다. 1. 기본적인 틀 맞추기 위 그림은 기획자가 제공한 설정 UI모습이다.배경, 노브 등의 에셋을 제공해줬다.이전 개발일지에서 사용했던 Scaler를 이용해서 모든 해상도에 적용가능하게 제작해준다. 각 ui의 텍스트들은 json으로 연결해줄 것이기 때문에 일단 임시로 세팅되어있다.아직 슬라이더의 값과 각 키에 대한 매핑은 연결되어있지 않다. 각 해상도에 맞게 자동으로 ui가 설정되는 것까지 완성했다. 2. 각 요소들의 네이밍 작업당연하지만 UI는 이미지, 텍스트, 슬라이더 전부다 하나의 요소이다.. 2025. 7. 26.
project2 개발일지 - 3 [Lobby UI 기능연결] Lobby UI 기능연결 목표이전에 만든 UI를 기반으로 기능을 연결한다.당장 연결하지 못한다고 해도 사용할 함수 인터페이스만 뚫어준다. 인프런에서 공부한 프레임워크를 기반으로 만들기 때문에,처음 코드를 본 사람들은 사용하지 못한다. 1. Json과 텍스트 연결우선 각 버튼에 쓰일 내용과 이름을 json에 구조로 만들어준다. 인프런에서 학습한 코드를 기반으로 name을 key로, text를 value로 갖는 Dict를 만들어준다.이는 싱글톤으로 제작된 dataManager에서 관리되며,필요에 따라 컨텐츠 코드에서 사용할 예정이다. 데이터 매니저를 통해 정보를 가져와서 텍스트를 바꿔주면된다.해당 코드에서 GetTMP는 인프런을 통해 학습한 코드 기반이다. test라는 텍스트에서 원하는 텍스트로 잘 바뀐것을.. 2025. 7. 22.
project2 개발일지 - 2 [Lobby UI] Lobby UI 목표팀의 기획자겸 모델러가 제시한 이미지를 바탕으로 작업 예정이다.뒷배경은 인게임 마트 맵을 기반으로 카메라를 세팅할 예정이다.따라서 우선은 로고와 버튼 완성을 우선으로 진행한다. 1. Canvas Scaler참고한 유니티 공식문서https://docs.unity3d.com/kr/530/Manual/script-CanvasScaler.html 캔버스 스케일러 - Unity 매뉴얼캔버스 스케일러(Canvas Scaler) 컴포넌트는 캔버스 내 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하는 데 사용됩니다. 스케일은 글꼴 크기와 이미지 경계 등 캔버스 아래의 모든 요소에 영향을docs.unity3d.com 게임의 해상도는 기본적으로 1920x1080을 기준으로 한다.해상도를 변경하더라도 .. 2025. 7. 22.