본문 바로가기

Unity

유한 상태 기계(Finite State Machines, FSM) #1 (3/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. (2편에 이어서 계속) 우리의 첫번째 실용적인 유한 상태 기계 enemy에 대해서 더 주의깊게 생각하고, 상태를 정의한 다음, enemy들을 한 번에(at a time) 하나의 상태에 넣어보자. enemy는 다음 중 하나의 상태에 있을 수 있다 : sleeping, following, attacking, being hit, dying. 우리는 실제 다음과 같이 작동하기를 바란다: Part 1/Scene 2우리는 FiniteStateMachine1.cs파일을 만든 다음, 파일안에서 가장 먼저 해야할 일은 상태를 정의하는 열거형을 만드는 것이다: 0102030405060708091011public enum EnemyStates{.. 더보기
유한 상태 기계(Finite State Machines, FSM) #1 (2/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. *번역을 하면서 이해가 잘되지 않은 부분은 원문과 같이 배치하였습니다. (1편에 이어서 계속) 유한 상태 기계의 타입 많은 사람들이 알다시피, 유한 상태 기계를 만드는 것을 도와주는 많은 그래픽 툴이 있다. - 이 튜토리얼은 코드 기반의 FSM에 대한 것이다. 만약 그래픽 툴을 사용하고 싶다면, PlayMaker 또는 그외 경쟁사 제품을 확인해봐라. - 하지만 그래픽 툴을 이용하는 것은 스스로 코드를 작성하는 것보다 훨씬 더 많은 제약이 존재한다. 여기에는 2가지 형태의 코드 기반 FSM이 있다. Discoverable FSM/On Demand FSM 가끔씩, 특별한 목적으로 특정 시간에, 어떤 대상의 상태만 알면 되는 경우.. 더보기
유한 상태 기계(Finite State Machines, FSM) #1 (1/3) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. 튜토리얼의 첫 부분에서, 우리는 유한 상태 기계를 사용하는 이유를 파헤치고, switch문을 사용하여 이를 구현하는 가장 간단한 방법을 보여줄 것이다. Getting in a State? 당신이 작성하는 모든 프로그램은 상태 기계이다. if문을 작성하는 순간에도, 적어도 2개의 상태중 하나를 만든 것이다. - 코드를 작성할수록, 프로그램에는 더 많은 상태가 들어갈 것이다. switch와 if문의 과도한 사용은, 겉으로 이해하기 힘든 이상한 버그들과 함께, 해결방법의 복잡성은 증가하고 컴포넌트간의 상호작용은 예기치 않은 결과를 초래하면서, 감당할 수 없게 될 것이다. 당신의 프로젝트는 확장하기 어려워 지게 되고, 심지어 개념화.. 더보기
Space Shooter AI(우주 발사체 인공지능) - 3 (마지막) 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. 본문에서 프로젝트 파일을 다운받아서 같이 따라하시면 더 이해가 쉽습니다.:) 숨바꼭질 (first FSM) 우리는 여기서 유한-상태-기계(FSM)이라는 새로운 단어를 소개하려고 한다. 이 화려한 단어 뒤에 있는 것은 무엇인가? 다른 행동 또는 주변 환경에 따른 행동의 집합이다. 이는 당신의 NPC가 자신의 상태와 주변의 환경에 대해서 행동을 수행하고 있다는 것을 의미한다. 여기 이 주제에 대한 상급 튜토리얼이 있지만, 명심해라! 그것은 상급이다. (역자 주: 해보시면 쉽습니다 ^^) 적 우주선에 대해서, 자신을 보호하기 위해 바위 뒤로 숨으면서, 계속 앞으로 나아가는 간단한 FSM을 만들 것이다. 코드로 이동하기 전에, 항상.. 더보기
상급 코루틴 개념(Advanced Coroutines) 원문은 이곳에서 보실수 있습니다. 제 능력에 한해서 최대한 쉽게 쓰려고 노력했습니다만 이해가 잘 안되는 부분이 있을 것입니다. 여러분의 잘못이 아니기에 좌절하지 마시고, 이해가 안되시는 부분만 원문을 참고하시는 것도 좋을 것 같습니다. 본문에 나와있는 소스코드를 보면서 읽으시면 조금 더 이해가 쉬울 것입니다. 코루틴이 어떻게 작동하는지 궁금한가? yield 명령문의 뒤에서 도대체 무슨 일이 일어나는가? 한번 알아보자.목적 코루틴이 화면 밖에서는 어떤 일들이 일어나는지 알고 싶다면 반드시 이 글을 읽어야 한다. 만약 당신이 FSM 튜토리얼을 따라하고 있거나, 후에 다시 재시작 가능한 개입 중단 가능한(interruptable) 코루틴을 어떻게 만들 수 있는지에 대한 세부사항을 알고 싶다면 이 튜토리얼은 매.. 더보기
유나이트 벤쿠버'13 - 한글자막 동영상 2013년 벤쿠버에서 열린 유나이트 키노트 영상입니다.16분부터 강연이 시작되니 참고하시기 바랍니다. 더보기
코루틴(Coroutine)++ 목적 만약 코루틴에 대해서 확실하게 모르거나, 원하는 작업을 하고자 할 때 문제가 발생했다면 당신은 반드시 이 튜토리얼을 읽어야 한다. 코루틴은 다음과 같은 특성을 가진다 : 특정 작업을 단계적으로 발생하게 한다. 시간이 흐름에 따라 발생하는 루틴을 작성할 수 있다. 다른 연산이 완료될때까지 기다리는 루틴을 작성할 수 있다. 예를 들어, 컷 씬 시퀀스를 조직하거나 또는 단순히 적이 죽는 애니메이션을 기다린 다음, 재생성을 할 수도 있다. 코루틴은 유니티의 매우 강력한 부분이지만, 종종 초보자들은 코루틴을 이해하는데 많은 어려움을 겪는다. 이 튜토리얼은 당신이 강력하고 융통성있는 코루틴을 파악하고, 그들이 어떻게 작동하는지 이해하는데 도움을 줄 것이다. 만약 단지 몇 초 동안 특정 연산을 지연시키기를 원한.. 더보기
Space Shooter AI(우주 발사체 인공지능) - 2 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. 본문에서 프로젝트 파일을 다운받아서 같이 따라하시면 더 이해가 쉽습니다.:) Spinning around 주위를 돌게하기우리는 삼각법 함수를 계속해서 수정할 것이고, 이번 시간은 한 정점의 주위를 돌게끔 만들 것이다. 우리가 이루고자하는 것은 한 정점 주위의 원안에 위치한 우주선들이, 정점 주위를 돌면서 플레이어 우주선을 향해 움직이게 하는 것이다. 흠, 당신이 이 요점을 이해했다고 확신하지는 않지만, 이것이 더 이상 마법이 아니라는 것을 보게 될 것이다. 단지 수학이다. 우리는 spawn 객체가 x축에 따라서 움직이게하는 새로운 스크립트가 필요하다. 크게 어렵지 않다: 123456789using UnityEngine;usi.. 더보기
Space Shooter AI(우주 발사체 인공지능) - 1 원문은 이곳에서 보실수 있습니다. 내용이 길어 총 3편으로 나눠서 올리겠습니다. 본문에서 프로젝트 파일을 다운받아서 같이 따라하시면 더 이해가 쉽습니다.:)인공지능의 소개, 혼란스러울 만큼 마음을 사로잡는 주제우주 발사체 AI 이 튜토리얼에서는, 우리는 간단한 우주 발사체를 개발할 것이다. AI를 배우기 위해 2D개발 환경으로 시작할 것이다. 게임은 기본적인 횡 스크롤 게임 플레이를 사용할 것이며, 이것은 적들이 오른쪽에서 왼쪽으로 이동하는 동안 우리의 우주선은 오른쪽으로 이동한다는 것을 의미한다. 핵심은 우리의 적들에게 생명을 주는 것이다. 우리는 약간의 벡터 연산뿐만 아니라, 삼각법, 객체지향(상속, 다형성)을 사용할 것이다. 만약 이런 것들에 친숙하다면 문제가 없겠지만, 만약 그렇지 않더라도 이 글.. 더보기
유니티 개발자로서 내가 배웠던 최고의 5가지 * 해당 글은 원문은 이곳에서 보실 수 있습니다. 유니티 개발자로서 내가 배웠던 최고의 5가지 유니티는 환상적인 게임 개발 플랫폼인 이유가 여러가지 있지만, 깔끔하고, 접근이 쉬운 컴포넌트 기반 플랫폼으로 디자인된 것이 그 이유 중 하나이다. 예를 들어, 약간의 코드를 함께 놓는것은 매우 쉽고, 하루 또는 이틀만에 실행가능한 프로토 타입을 만들 수 있다. 그러나 이런 다재다능함에도 불구하고, 나는 몇년동안 유니티로 특별하게 더 잘 할 수 있는 몇가지 사례들을 발견했다. 나의 새로운 게임 The Fall과 함께 나는 이들의 많은 사례들을 얻었고 그것을 조합했다. 그 결과 나는 빠르고 쉽게 그리고 상대적으로 버그가 더 적은, 매끄러운 개발 프로세스를 경험하였다. 나의 The Fall의 발표소식을 축하는 것을.. 더보기
Unity3D 게임 프로그래밍에서 당신이 반드시 알아야 하는 10가지 원문은 http://abitgames.com/2011/blog/10-things-to-know-programming-unity3d-games/에서 보실수 있습니다. (* 2번 항목은 제 개인적은 판단으로는 현재 아무문제가 없는 것으로 판단되어 일부로 번역을 하지 않았습니다만, 혹시 현재까지도 2번의 항목이 유효하다면 댓글로 남겨주시면 감사하겠습니다.) Unity3D 게임 프로그래밍에서 당신이 반드시 알아야 하는 10가지 Written on March 28, 2011 by Wu Jie in Blog.유니티3D는 게임 개발과 프로토 타입을 만드는데 굉장히 좋은 툴이다. 우리는 몇 달동안 유니티를 사용하였다. 그것은 잘 문서화 되어 있고 초보자들에게 충분한 커뮤니티가 있다.또한 그것은 효율적인 도움을 받을 수.. 더보기
유니티 메모리 관리 - 4(마지막) 늦어서 죄송합니다. 그동안 잠시 다른 일이 생겨서 마지막 부분 업로드가 늦었습니다.해당 글 원문은 http://unitygems.com/memorymanagement/에서 보실수 있습니다.번역중에 이상한 부분은 댓글 남겨주시면 확인 후에 수정하겠습니다.(저도 공부하면서 올리는 거라 미흡한 점이 많이 있습니다. 미흡한 부분이 있더라도 조금만 양해부탁드립니다^^;)Static Variables정적 변수많은 초보자들은 이 간단한 실수를 한다:1234public static int health;void Start(){    health=100;}다른 스크립트에서 우리는 다음과 같은 코드를 발견할 것이다.123456void OnCollisionEnter(Collision other){    if (other.g.. 더보기
유니티 메모리 관리 - 3 원문이 약간 길어 3~4개로 나눠어서 올릴 예정입니다. 해당 글 원문은 http://unitygems.com/memorymanagement/에서 보실수 있습니다.번역중에 이상한 부분은 댓글 남겨주시면 확인 후에 수정하겠습니다. (저도 공부하면서 올리는 거라 미흡한 점이 많이 있습니다. 미흡한 부분이 있더라도 조금만 양해부탁드립니다^^;) Struct vs Class그래서 어떤 상황에서 어느 것을 사용해야 하는가? 클래스를 사용하는 것은 추가적인 변수(참조변수)가 추가 된다는 것을 알았다. 만약 수천 개의 객체를 만든다면, 수천 개의 추가적인 변수를 얻을 것이다. 하지만 구조체는 이들을 생성하지 않는다. 밑의 예제를 보자: 0102030405060708091011121314151617181920212223.. 더보기
유니티를 공부한지 3개월... 유니티를 공부한지 어느 덧 3개월이 다 되어 갑니다. 나름 열심히 한다고 했는데 뒤돌아 보니 아쉬운 부분이 많은 것 같습니다. 제가 지금까지 공부한 것들을 기억나는데로 써보면 뇌를 자극하는 C#,Head Fist C#,C# in Depth (블로그 이름을 여기서 얻어왔습니다)Unity Game Development BeginnerUnity Game Development EssentionsUnity Game Development Hot shotUnity Blue printUnity Bible유니티 개발의 정석거침없이 배우는 유니티Unity3Dstudy 강좌(무료, 유료)윤훈남 강좌(무료)Hack and Slash 강좌(무료, 약 총 280강좌)한콘진 유니티 강좌(무료)각종 국내, 해외 블로그, 유튜브 영상.. 더보기
유니티 메모리 관리 - 2 원문이 약간 길어 3~4개로 나눠어서 올릴 예정입니다. 해당 글 원문은 http://unitygems.com/memorymanagement/에서 보실수 있습니다.번역중에 이상한 부분은 댓글 남겨주시면 확인 후에 수정하겠습니다. 참조형식과 힙 참조형식 변수는 참조형으로 메모리에 저장된 객체를 말한다. 새로운 클래스 인스턴스를 만들 때,이들의 데이터 위치의 참조변수를 만들뿐만 아니라 데이터도 힙에 저장된다.이 참조는 값형식으로 객체의 주소값을 가지는 변수이다.(참조변수) 클래스의 인스턴스를 만들기 위해서 new 키워드를 사용하는데, 이는 OS에게 객체의 타입에 맞는 메모리 공간과 객체를 초기화 하는데 필요한 코드를 수행하도록 요청한다. 밑에 Dog타입의 객체의 예시를 보자. (역주: 위에서 말한 참조형식 변.. 더보기