포트폴리오) 게임 프로젝트

제목 : 놀러와 마이홈 for Kakao (2016.08 ~ 서비스 중)
플랫폼 : Android / iOS
– 편집모드 구현 (2D 좌표상에서 오브젝트의 생성, 이동 및 배치)
– NPC AI 구현
– PET AI 구현
– 튜토리얼 제작용 툴 구현
– 게임 UI 컨텐츠 제작(NGUI 사용)
: 업적 기능 개발
: 도감 기능 개발
: 일일미션 기능 개발
: 설정 기능 개발
: 방명록 기능 개발
: 캡쳐기능 개발
제목 : 와일드샷 for Kakao
플랫폼 : Android / iOS
– 클라이언트 리드 개발자
– 게임 플레이어 시스템 개발 (2DToolKit, SmoothMoves 이용)
– 스테이지 및 몬스터 시스템 개발
– 캐릭터 시스템 개발
– 전투 시스템 개발
– 상점 기능 개발
– 로그인 및 결제 시스템 개발

포트폴리오) VR/AR 프로젝트 2019~2020

제목 : VR 프로젝트
플랫폼 : PC
엔진 : Unity 2019.2.0f
SDK : Steam VR SDK
대상기기 : Samsung Odessey
작업 기간 : 3주
클라이언트 인원 : 1명

제목 : VR – 디지털 교과서용 체험 컨텐츠
플랫폼 : Android, iOS
엔진 : Unity 2018.4.5f
SDK : Google VR
작업 기간 : 1주
제목 : AR – 디지털 교과서용 체험 컨텐츠
플랫폼 : Android, iOS
엔진 : Unity 2018.4.5f
SDK : Vuforia
작업 기간 : 2주
제목 : AR – 디지털 교과서용 체험 컨텐츠
플랫폼 : Android, iOS
엔진 : Unity 2018.4.5f
SDK : Vuforia
작업 기간 : 1주
제목 : 크립토 스타 (프로토타입)
– 블록체인(이더리움) 기반의 SNG 게임
플랫폼 : Android
엔진 : Unity 2018.4.0f
작업 기간 : 1개월

요즘 하는 게임 “라그나로크M”



정작 출시되었을 때는 중국산 게임이라하여
별 흥미를 가지지 않다가
최근에 광고에 나오는 라그나로크 BGM에 홀려 시작해보았다.

어떤 게임인가 살펴보니
배경은 PC의 모델을 그대로 가져다 썼고
캐릭터만 2D -> 3D 로 변경.
그리고 각 도시 사이의 거리를 줄여놓고
라그1에서 굉장한 페널티를 받게 되던 무게 시스템을 없애
편의성을 증대시켰다.

생각보다 재미있게 잘 만들어서 놀랐다.

최근에 출시되는 게임들의 퀄리티가 엉망이라
꽤 오랫동안 하게 될 것 같다ㅎㅎ

[Unity] System.DllNotFoundException.sqlite3

Unity 에서 Sqlite를 사용할 때
Android 빌드시 sqlite3.dll 파일을 찾을 수 없다는 오류가 발생할 때는
libsqlite3.dll 파일 경로가 잘못되었을 가능성이 큽니다.

libsqlite3.dll 파일은 Plugins-Android 폴더에 넣으시고
그외 dll 파일들은 Plugin 폴더에 넣으시면 됩니다. (Mono.Data.* ,System.* 파일들)

제가 문제를 해결한 플러그인 폴더를 패키지로 공유하니 참고하시기 바랍니다.
https://drive.google.com/open?id=13WDCqq_b0U_czgdFOe58Czc0WLcaDnPW

[Unity] UGUI 에서 터치 좌표에 UI가 있는지 판별하기

개발하다 보면 오브젝트의 Collider 와 UI의 구성요소가 겹치는 경우가 있는데
이 상태를 판별하는 코드이다.

        public static bool IsOverUIElement()
        {
            var eventData = new PointerEventData(EventSystem.current);
            eventData.position = Input.mousePosition;
            var results = new List<RaycastResult>();
            EventSystem.current.RaycastAll(eventData, results);
            return results.Count > 0;
        }

[Unity] UGUI Sprite packer 가 동작하지 않을 때

SpritePacker 의 Pack 버튼을 눌러도 동작하지 않을 때는
1. Resources 폴더 하위에 있는 Sprite 들을 Resources 폴더 밖으로 이미지들을 옮긴다.
2. Edit – Project Setting – Editor – Sprite Packer 의 설정을 Disable로 바꿨다가 다시 Always Enabled 로 바꾼다.
3. 유니티 재시작
4. Window – 2D – Sprite Packer 를 열어 다시 Pack 버튼을 누르면 Packing 이 된다
5. Sprite 들을 다시 원래 위치로 옮긴다.

Please enable desugaring by adding the following to build.gradle 오류

안드로이드 스튜디오에서 빌드시에 오류가 났다.
오류 메세지는 Please enable desugaring by adding the following to build.gradle 이것.
원인을 살펴보니 안드로이드 스튜디오에서 Java 8 을 사용하도록 설정하지 않아서였다.

프로젝트 우클릭 -> Open Module Settion (F4) 메뉴
-> Modules 에서 Source와 Target Compatibility 를 1.8 로 변경해주니 해결~

[Programmers] K번째 수

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하는 문제

JAVA

public static int[] solution(int[] array, int[][] commands) {
        int cnt = commands.length;
        int[] answer = new int[cnt];

        for(int i = 0; i < cnt; ++i){
            answer[i] = getSelectValue(array, commands[i]);            
        }
        //System.out.println("answer ="+Arrays.toString(answer));
        return answer;
    }

    static int getSelectValue(int[] array, int[] command){
        int start = command[0] - 1 ;
        int end = command[1];
        int index = command[2] - 1;
        //System.out.println(start + " / "+end+ " / "+index);
        int[] temp = Arrays.copyOfRange(array, start, end);
        Arrays.sort(temp);
        //System.out.println("temp ="+Arrays.toString(temp));
        return temp[index];
    }    

 

이렇게 해도 됨
public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        for(int i = 0 ; i < commands.length; i++)
        {
            int size = commands[i][1] - (commands[i][0] - 1);
            int[] copyArray = new int[size];
            System.arraycopy(array, commands[i][0] - 1, copyArray, 0, size);
            Arrays.sort(copyArray);
            answer[i] = copyArray[commands[i][2]-1];
        }
        return answer;
    }