반응형

Unity3D 29

[유니티] UI - 1

지난번 '러닝하이'프로젝트를 하면서 정말 세상에서 제일 귀찮았던것은 UI 작업이었다. UI 배치는 뭐... Scene에서 그냥 휘적휘적하면서 올려두고 뭐 하고 하면 되는데 UI 오브젝트를 스크립트상에서 제 기능을 하도록 이벤트 연결하고, 스크립트 상에서 문자를 넣고 하는게 너무 단순반복 노가다 같고 재미가 없었다. 그도 그럴게 나 같은 경우에는 어떻게 하면 효율적으로 할 수 있을지 크게 생각을 못하고 그냥 오브젝트 하나하나 불러오거나, 기껏해야 비슷한거 배열길이도 이미 정해진거로 만들어갖고 꾸역꾸역 하나하나 경로부터 이름까지 다 불러와서 배치하는 미친 노가다를 했기 때문이다. 그런데 이번에 강의를 들어보니 나같이 멍청하게 안하는 방법이 있어서 배운것을 기록하려고 한다. 1. UI 오브젝트 생성 UI 작업..

유니티 게임 오브젝트와 UI 클릭을 구분하기 - [EventSystem.IsPointerOverGameObject]

입력을 하나의 스크립트에서 처리를 한다고 할 때, 이런 경우가 있을것이다. Player 캐릭터의 움직임에도 마우스 클릭이 사용되고 UI 버튼을 사용할때에도 마우스 클릭이 사용된다. 이 경우, UI 버튼만 누르고 싶어서 누른건데 Player 캐릭터또한 UI 버튼 방향으로 이동한다면? 대충 이런 상황에서 사용되는게 IsPointerOverGameObject이다. https://docs.unity3d.com/kr/530/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html Unity - 스크립팅 API: EventSystems.EventSystem.IsPointerOverGameObject If you use IsPointerOverGam..

State 패턴

게임을 만들다보면, 하나의 캐릭터는 굉장히 많은 동작을 수행해야한다. 대기, 걷기, 뛰기, 앉기, 공격 등등등... 그런데 스크립트 상에서 이러한 동작을 전환시키려면 어떻게 해야할까? 각 상태별로 Boolean 변수를 만들어서 각 변수를 체크한다? 동작이 한 두개라면 쓸 수 있는 방법이겠지만, 동작이 많아지면 많아질수록 관리가 감당이 안될것이다. 이럴때 사용하는 방법이 바로 State 패턴. public enum PlayerState { Die, Moving, Idle, Channeling, Jumpling, Falling, } PlayerState _state = PlayerState.Idle; 우선 이렇게 동작을 정의? 해준다. void Update() { switch (_state) { case P..

유니티 간단하게 조이스틱 이동 해보기.

이런 분들이 보시면 좋습니다. 유니티에 대해 감이 잘 안오시는분, 코드를 직접 작성하는것이 아직 어려우신 분 코드에 대한 이해보다는 우선 구현이 목적이신분. 무언가를 만들어 보는것에 의의를 두시는 분... 즉, 어떻게 해야 조이스틱 코드를 직접 짜고 구현하는것이 목적이 아닌, 작동에 목적을 두시는 분들에게 추천합니다. '에셋'을 활용하여 매우 간단하게 조이스틱 이동 구현하기. 이동시킬 오브젝트 생성 3D나 2D나 둘 다 상관은 없지만, 조금 더 직관적인 이해를 위해서 2D로 해보도록 하겠습니다. 우선 2D 스프라이트 오브젝트를 하나 생성해 줬습니다. 조이스틱 에셋 다운로드 만든 오브젝트를 움직이기 위해서는 컨트롤러, 이번 경우에는 조이스틱이 필요합니다. 그럼 그 조이스틱은 어떻게 만들까요? 직접 만든다는..

[유니티 인디게임] 처음 공부부터 출시까지. - 7(完)

이전글 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작! 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현 핵심기능 개발 / 일부 UI 개선 코드 / UI 갈아엎기, MWU 제출을 위하여 튜토리얼/편의성/밸런스 패치 구글플레이 등록 / 인앱결제 / 애드몹 다방면 삽질끝에 출시를 앞두다. 맨 땅에 헤딩으로 시작해서 게임을 개발하고, 뒤늦게 조금씩 올리던 개발일지의 끝이 보이네요. 처음에는 굉장히 잦은 주기로 올렸었는데, 마지막 개발일지를 이렇게 늦게 올리게 될 줄은 예상하지 못했습니다. 제 생각보다 이게 어플을 등록하는것이나 플러그인을 사용하는것 등등에서 굉장히 많은 어려움을 겪었던게 컸습니다. 개발능력외에도 참 많은 부분에..

[유니티 GPGS 오류 해결] AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='getStatusCode' signature='()I' in class Ljava.lang.Object;

유니티에 구글 플레이 게임 서비스(GPGS)를 연동해서 Cloud Save / Load를 사용하기 위해 관련된 함수를 활용하려고 했는데, 아래와 같은 에러메세지가 발생하면서 동작하지 않았다. AndroidJavaException: java.lang.NoSuchMethodError: no non-static method with name='getStatusCode' signature='()I' in class Ljava.lang.Object; 그리고 문제 해결을 위해 검색을 해 본 결과, 나와 같은 문제를 갖은 사람들이 꽤나 많았는데 https://github.com/playgameservices/play-games-plugin-for-unity/issues/3002 AndroidJavaException:..

[유니티 인디게임] 처음 공부부터 출시까지. - 6

모든 글 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작! 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현 핵심기능 개발 / 일부 UI 개선 코드 / UI 갈아엎기, MWU 제출을 위하여 튜토리얼/편의성/밸런스 패치 구글플레이 등록 / 인앱결제 / 애드몹 다방면 삽질끝에 출시를 앞두다. [15] 스토리 / 튜토리얼 추가 이제 어느 정도 게임 시스템도 자리 잡았고, 남은 건 버그를 잡고 마감도를 올리는 일이 대부분입니다. 이쯤 되니 슬슬 데모 버전으로 주변 사람들에게 테스트를 해 봐야겠다 싶었는데요. 막상 만나서 한 두명에게 시켜보려 하니, 처음부터 게임 시스템에 대해 제가 옆에서 계속 설명해 줘야 하더라고요. 물론, 그 ..

[유니티 인디게임] 처음 공부부터 출시까지. - 5

모든 글 처음 게임을 개발하기로 마음먹기까지, 그리고 생각보다 어려웠던 유니티. 두 개발 초보의 얼렁뚱땅 날림 게임 기획. 헤딩시작! 캐릭터 선택 / 장애물 기획 및 구현 / 스킬 일부 구현 핵심기능 개발 / 일부 UI 개선 코드 / UI 갈아엎기, MWU 제출을 위하여 튜토리얼/편의성/밸런스 패치 구글플레이 등록 / 인앱결제 / 애드몹 다방면 삽질끝에 출시를 앞두다. [12] 코드 리팩토링 작업 맨땅 헤딩으로 게임 제작을 시작한지 약 한~두달, 초기에는 싱글톤패턴을 활용해서 제작을 해 보려고 했습니다. 하지만 이 싱글톤패턴에 대한 명확한 공부가 이뤄지지 않은 상태에서 정말 대강의 느낌만 이해한채로 하다보니 코드가 굉장히 기형적으로 변했습니다. 굳이 SAVEDATA에 들어가 있지 않아도 될 데이터가 들어..

반응형