게임 개발165 유니티) 스프라이트 이미지 자르기 여러 사진이 모여있어 한 사진으로 표현된 사진을 스프라이트 이미지 라고 한다. 유니티에는 스프라이트 이미를 나눠서 여러 사진의 용도로 쓸 수 있다. 오늘은 그 방법을 설명해보겠다. 처음 이미지는 이런 형식으로 되어있을것이다. 여기서 Sprite Mode를 multiple로 바꿔주고 가운데 쯔음에 있는 Sprite Editor를 열여준다. 그럼 이런 모습일텐데, 여기서는 왼쪽 상단에 있는 Slice를 클릭해준다. 그러면 이런 창이 열릴것이다 Type을 클릭해주고 Grid By Cell Size를 선택해준다. 그러면 이런 화면이 된다. 이제 Pixel Size에 그림에 맞는 픽셀수를 써주고 Slice를 클릭해주면 이렇게 깔끔히 나눠진 모습이다. 오른쪽 상단쪽에 apply를 눌러주고 유니티에 돌아와보면? 매우.. 게임 개발/유니티 2022. 8. 11. C# 타입끼리변환하는법 (형변환 하는법) 파싱, 강제형변환 나는 지금까지 각각의 함수가 변환시켜주는것만 알고있었다. 예를들면 문자열이 되고 싶다면 .Tostring() 함수를 쓰고, float 값을 얻고 싶다면 float.parse 함수, int 는 int.parse 등 Parse를 사용하는 것들은 파싱이라고 한다. Parsing 의 발음과 같다. parse와 tostring 같은 함수들만이 변환해주는건줄 알았는데 더욱더 간단한 문법이 있었다. 자기가 원하는 타입을 괄호 안에넣고 뒤에 바꾸고 싶은 변수를 쓰면 된다. 예시를 보여주자면 float num1 = 5.55f; num1 = (int)num1; 이렇게 하면 5.55의 int값, 5가 된다. float와 int뿐만 아니라 다른 타입끼리도 된다. 하지만 float와 배열같이 말도안되는 타입끼리는 안된다. 도움.. 게임 개발/C# 2022. 8. 8. Input.GetAxis 값의 의미 Input.GetAxis("Horizontal")은 true, false가 아닌 -1 ~ 1 로 구성된 실수가 나오는데, 보통 유니티를 배울때는 궁금한점이 없었겠지만 키보드의 키를 누르는것에만 초점을 맞춰본다면 이건 굉장히 비효율적일수있다. 키보드를 누르는것에서 그쳤다면 -1 또는 1 "로만" 나오게 했거나 True 나 False로 표현했을것이다. 본론으로가서 -1 ~ 1사이의 실수인 이유는 조이스틱등 다른 기기의 호환 때문이다. 조이스틱은 끝까지 당길수도 있고, 조금만 밀어 세심하게 조정할수도 있다. 그래서 -1 ~ 1 사이의 숫자로 플레이어가 얼마나 세심하게 조이스틱을 당기고 있는지를 표현한다. 도움이 되었길 바라며, 끝. 게임 개발/C# 2022. 8. 7. 유니티 3D 배경 단색으로 칠하기 유니티 3D프로젝트의 기본 뒷배경은 가상의 하늘이다. 하지만 상황에 따라서 단색의 배경을 쓰고 싶을때가 생기는데, 그럴때는 Main Camera 오브젝트의 Camera컴포넌트의 Clear Flags를 SkyBox -> Solid Color로 바꿔준다. 그후 그 밑에 Background값을 조정하여 배경을 원하는색으로 바꿔주면 된다. Solid는 일반적으로 고체라는 뜻을 가지고 있지만, 색에 대해서는 단색이라는 뜻을 가지고 있다. 추가로, 단색이 아닌 예쁜 하늘을 만들고 싶다면 skybox라는 개념을 이용해야 한다. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 8. 7. 유니티 휴대폰에서 뒤로가기키를 눌렀을때 if (Application.platform == RuntimePlatform.Android) { //안드로이드일때 if (Input.GetKey(KeyCode.Escape)) { // 뒤로가기키를 누르면 Application.Quit(); //앱 종료 } } 이런 코드로 휴대폰에서 뒤로가기를 눌렀을때 앱을 종료 시키게 해줄 수 있다. 딱히 적을 글이 없는데, 저 맨 윗줄의 if문을 없애도 휴대폰에서 뒤로가기를 누르면 코드가 실행된다. 따라서 개발중일때 코드를 한번 변경할때마다 apk로 빌드할수는 없기에 중간 if문만 남겨서 뒤로가기를 눌렀을때의 이벤트를 키보드 ESC를 눌렀을때도 되게하여서 테스트 해볼수있다. 게임 개발/구글플레이스토어,구글개발자콘솔 2022. 8. 6. C# ?로 특정 if문 생략하기 (삼항연산자) C#에서는 ?를 이용하여 특정 코드가 필요한 부분을 생략 할수있다. 사용법) String TF; bool B; TF = B ? "True" : "False"; 만약에 B가 True라면 문자열 TF 에는 "True"로 초기화되고 B가 False라면 문자열 TF 에는 "False"로 초기화된다. if(B) { TF = "True"; } else { TF = "False"; } 이런 if문을 ?하나로 간단히 해줄수가 있다. 도움이 되었길 바라며, 끝. 게임 개발/C# 2022. 7. 27. 유니티 화면비율에 따라 다르게 UI표시 하게하는법 유니티를 하다보면 나와 다른 모니터 비율, 핸드폰 화면 비율이 개발과정에서 문제가 되는 경우가 있다. 이런경우는 Canvas 오브젝트에 Canvas Scaler 이라는 컴포넌트를 통해 문제를 해결해줄 수 있다. 필자는 삼성의 A90을 쓰고 있기에 1080 * 2400을 기준점으로 해주었고, 저렇게 Canvas Scaler 컴포넌트의 UI Scale Mode를 Scale With Screen Size로 해주고, 자기가 기준으로 하고싶은 화면사이즈(픽셀기준) 을 Reference Resolution에 입력해주면 된다. 저렇게 설정을 다했다면, 화면 크기를 설정하는 탭에서 여러 화면을 선택해보며 잘못된건 없는지, 잘 설정되었는지 확인해 보자. 또한 유니티에선 시뮬레이트 기능이 있기에 원하는 휴대폰기종으로 화면.. 게임 개발/UI 2022. 7. 27. Build failed with errors. 오류 해결 이런 오류가 떴다. 나같은 경우에는 프로젝트이름이 영어가아닌 한글로 되어있어서 오류가 난것이였다. 한글뿐만 아니라 특수문자도 이런 오류가 발생 할 수 있다. 구글을 찾아보다 정 모르겠다면 이방법도 참고해보면 좋을것같다. 평소에 프로젝트이름을 영어로 짓는 습관을 들여야 겠다. 도움이 되었길 바라며 끝. 게임 개발/유니티 2022. 7. 26. 유니티 버튼 컴포넌트 기능 정리 오늘은 버튼 컴포넌트의 다양한 기능들을 설명해 보겠다. Interactable : 사용할지 사용하지 않을지 선택(저걸 선택하지 않으면 버튼이 눌러지지 않는다) Transition : 버튼 색깔기능 종류 선택(이 글은 Color Tint 기준으로 작성됨) Target Graphic : 원하는 이미지 넣기 Normal Color : 평소의 색깔 Highlighted Color : 마우스를 가져다 댔을 때의 색깔 Pressed Color : 눌렀을 때 색깔 Selected Color : 선택되었을 때 색깔 Disabled Color : 다양한 이유로 버튼이 망가졌을 때, 사용불가능할 때 나오는 색깔 Color Multiplier : 변하는 색의 진하기 조절 Fade Duration : 색깔이 변하는 시간 조절.. 게임 개발/유니티 2022. 7. 21. 유니티 2D 타일링하기 (잔디깔기) 저런 잔디 사진을 가즈고 땅을 구성하고 싶다면, Sprite Renderer의 Draw mode를 Tiled로 바꿔준다. 이 상태에서 transform의 position을 1,1,1로 맞추고 Width 를 늘려주면 잔디가 늘어난다. 하지만 콜라이더(물리가 적용되는 넓이)는 늘어나지 않기 때문에 XXXCollider 의 Width도 같이 조정해줘야한다. 이렇게 한 사진만으로 여러 길이의 잔디를 만들 수있다. 사실 이렇게 하는것보단 Tile Palette를 사용하는게 더 적절하다. https://alpaca-code.tistory.com/86(타일맵 설정) 유니티 2d게임 틀(칸) 만들기, 타일맵 만들기 2d게임을 보면 대부분의 게임에 칸 이라는 요소가 작용하는걸로 보인다. 거의 모든게임이지만 굳이 예시를 .. 게임 개발/유니티 2022. 7. 18. 버튼에 함수를 (아웃렛)연결 할때 안보이는 현상. 평소에는 잘 보이던 함수가 연결할때 사라졌다. 내가 놓치고있던 부분은 "void" 이다 나는 public만 있으면 나오는줄 알았는데 버튼 리스너의 함수에는 당연하게도 반환값이 나올 변수가 딱히 없기에 void가 필요하다 결론은 "버튼 리스너 아웃렛 연결을 할때 함수에 public 뿐만아니라 void도 있어야한다" 이다. 이 부분을 놓치고있는지 확인하자. 도움이 되었길 바라며, 끝. 게임 개발/유니티 2022. 7. 15. 두 배열 혹은 리스트 사이에서 같은 값만 남기고 싶을때 두 배열이나 리스트사이에서 같은 값만 남기고 싶을때는 using System.Linq AList.Intersect(BList); 로 두 배열사이에서 같은 값을 배열로 가져올수있다(교집합) 도움이 되었길바라며 끝. 게임 개발/유니티 2022. 7. 15. 이전 1 ··· 9 10 11 12 13 14 다음 💲 추천 글