유니티에서 조각난 그림조각들을 올바른 위치에 배치하여 그림을 완성시키는 직소퍼즐 구현방법에 대해 알아보겠습니다. 기본적으로 마우스 드래그를 통해 퍼즐조각을 움직여 퍼즐을 완성할 수 있도록 구현하겠습니다. 유니티 버전은 19.4.5f1을 사용하였으며 코드를 그대로 사용할 시 오류가 발생할 수 있으므로 코드 전체를 그대로 사용하시는거 보다 논리적인 로직을 이해하시고 직접 코딩하여 구현해보시는것을 추천드립니다. 이번 포스팅에서는 우선 마우스 드래그를 통해 UI(퍼즐조각)을 조작하는 방법에 대해 설명합니다. 1.컴포넌트 클래스 생성 각 퍼즐 조각에 추가할 컴포넌트 클래스를 생성합니다. -스크립트 최상단에 UnityEngine.EventSystems 네임스페이스를 사용하세요. -해당 클래스가 IDragHandle..
언리얼에서 svn을 통한 소스컨트롤 협업을 진행할 때 흔히 겪는 작업사본(Working copy) 오류를 간단하게 해결하는 방법에 대해 알아보겠습니다. 가장 흔하게 위 오류를 겪는 이유는 svn 프로젝트의 파일들을 그냥 그대로 긁어 왔을 경우입니다. 언리얼 엔진에서 소스컨트롤을 svn으로 연동하기 위해서는 진행하고 있는 프로젝트의 루트 경로에 .svn폴더가 존재해야 합니다. 만약 이 폴더가 존재 하지 않을 경우 언리얼 에디터에서 svn소스컨트롤 접속을 했을 때 Working copy 오류가 발생합니다. 해결 방법은 SVN Repository의 파일을 그냥 복사해서 가져오는게 아니라 체크아웃을 통해 파일을 가져와야합니다. 루트 폴더를 모르시는 분들은 쉽게 Content폴더 및 프로젝트 파일이 있는 폴더라고..
오늘은 3D 오브젝트를 화면 중앙에 위치시키고 UI처럼 사용하는 방법에 대해 알아보겠습니다. 콘솔게임으로 잠입이나 방탈출 같은 게임을 하다보면 특정 오브젝트와 상호작용했을 때 해당 오브젝트가 화면 가운데에 오고 마우스로 이리저리 돌리면서 오브젝트를 관찰하여 단서를 얻는 장면들을 보신적이 있을겁니다. 그럼 기존 카메라로 게임화면을 렌더링 하면서 가운데에 중첩해서 3d오브젝트를 렌더링 해야 합니다. 여기서 무식하게 카메라의 위치를 기준으로 ScreenToWorld함수 등으로 위치 시키면 어색하고 이상하게 오브젝트가 생성되죠. 이 문제를 해결하기 위해 유니티의 렌더 텍스쳐(Render Texture)기능을 사용합니다. 1. 먼저 에셋폴더에 새 Render Texture를 생성합니다. 2. 그리고 화면 중앙에 ..
이번 시간에는 UI가 생기면서 배경 게임화면은 흐려지게 할 때 쓰이는 블러효과를 적용시키는 방법을 알아보겠습니다. 보통 블러효과를 적용시키는 법에 대해 검색을 해보면 쉐이더를 사용하여 스크립트를 해야하는 내용들이 많고 초심자가 봤을때 상당히 어려워 보입니다. 그래서 저는 유니티에 내장된 기능들을 활용하여 클릭만으로 블러효과를 적용시키는법을 알아보겠습니다. 유니티는 원래 스탠다드 에셋이라는 것을 지원했습니다. 그리고 오늘 할 내용은 원래 이 스탠다드 에셋의 이미지 이펙트라는 것에 있었지만 최신버전에서는 스탠다드 에셋과 호환성 문제가 있습니다. 그러면 원래 있던 이 기능이 어디로 갔냐 하면 유니티의 기능중 포스트 프로세싱 이라는 곳에 이미지 이펙트 에셋 기능들이 옮겨졌습니다. 서론이 길었네요. 그럼 포스트 ..
코딩테스트 알고리즘에서 자주 사용되는 vector 자료구조 활용방법에 대해 알아 보겠습니다. 해당 글에서는 값추가, 값제거, 값 정렬, 중복제거, 객체 추가, 객체 정렬에 대해서 설명하고 있습니다. 1. 값 추가 벡터는 배열처럼 크기가 정해져있지 않고 동적으로 값을 추가 할 수 있습니다. 벡터의 push_back(value)를 호출하여 값을 추가합니다. vector numbers; numbers.push_back(0); numbers.push_back(1); numbers.push_back(2); numbers.push_back(2); numbers.push_back(3); numbers.push_back(3); numbers.push_back(3); for (int i = 0; i < numbers.s..
유니티에서는 JsonUtility를 활용해 시리얼라이즈와 디시리얼라이즈 하는 기능을 제공하고 있습니다. 1차원의 자료형까지는 모두 코드몇줄만 가지고 시리얼라이즈하여 서버와 클라이언트가 통신할 수 있죠. 예를들어 리스트, 벡터, 1차원배열 같은 자료형은 모두 Json으로 만들 수 있습니다. 하지만 서버와 통신하는 게임을 개발하다보면 서버와 클라이언트간의 2차원배열 이상의 데이터를 주고받아야 하는 경우가 있습니다. 예를들어 게임 필드의 지형 정보를 2차원 배열로 표현하여 플레이어간의 주고받을 수 있도록 통신하는 기능을 구현하고 싶다면 클라이언트에서 2차원배열을 보내고 서버가 브로드캐스트하여 다른클라이언트가 2차원배열 정보를 받을 수 있어야하죠. 하지만 이차원 배열은 JsonUtility의 ToJson()으로..
안녕하세요 이번에는 C#의 라이브러리 DateTIme클래스를 활용방법에 대해 알아보겠습니다. 모바일 게임을 개발할 때 흔히 시간에 따라 게임내의 재화를 지급하는 기능을 많이 씁니다. 예를 들면, 어느 특정 컨텐츠의 입장권이라던가 게임 플레이 자체의 입장권등을 일정시간마다 하나씩 지급하는 경우가 되겠습니다. 이 기능 구현을 위해 거쳐야할 순서로는 유저의 마지막 접속시간 가져오기 -> 현재시간 가져오기 -> 시간차이 계산 -> 시간차이를 지급시간으로 나누어 지급 첫번째로 유저의 마지막 접속시간을 가져와야합니다. DB를 운영하신다면 유저테이블에 적당한 컬럼을, DB를 운영하지 않으신다면 앱 내부에 데이터를 추가하여 유저의 마지막 접속시간을 기록할 장소를 만듭니다. 그럼 접속시간을 기록하는 시기는 보통 접속을 ..
유니티에서 안드로이드 앱을 만들때 반드시 모바일 기기에서 수행하여 결과를 확인해야 하는 경우가 있는데요. 이때는 유니티의 Debug.Log를 확인할 수 없어 디버깅에 어려움이 있습니다. 여기에 대응하기 위해 유니티에서는 내장 안드로이드 로그캣 패지키를 제공하고 있습니다. 사용법은 아주 간단한데요. window -> package manager 에서 Android logcat을 검색하여 선택하고 install버튼을 누릅니다. 그러면 잠시후 설치가 완료되고 window->analysis메뉴로 가시면 Logcat 이 있습니다. 로그캣에서 Tag탭을 눌러 Unity로 설정하시면 다른 로그들을 걷어내고 Unity와 관련된 로그만 한눈에 파악할 수 있습니다.
- Total
- Today
- Yesterday
- 안드로이드 구글맵
- 유니티 직소퍼즐 구현
- 빌드 주기
- 유니티
- refusing to run with root privileges
- 깃 허브 오류 해결
- 알고리즘
- 백준
- 알고리즘기초
- 언리얼 빌드
- Connecting Jenkins Agent
- dfs
- 젠킨스
- 안드로이드
- Unreal Header Tool
- 언리얼
- c언어강의
- Connecting Jenkins
- UHT
- 구글맵
- C++
- 언리얼 기초
- Add Node
- 언리얼 사용자 정의 구조체
- 젠킨스 에이전트 연결
- Jenkins Build Periodically
- C언어기초
- c언어 기초
- Jenkins
- 깃 용량문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |