목록프로그래밍 (8)
게임카레
먼저 해당 글은 XBox 게임패드를 이용하였음을 알린다. 유니티에서 게임을 만들다 보면 가끔은 게임패드가 연동되었으면 좋겠다는 생각을 하기도 한다. 기본적으로 게임패드를 입력했을때, 이동축을 GetAxis("Horizontal") 으로 입력받아 할 경우 게임패드의 왼쪽 조이스틱으로 움직임이 가능하다는것을 알수 있다. 하지만 다른 키에 대해서는 어떻게 입력해야 하는가? 주제에 의문에 앞서 유니티 에서는 Input manager 가 존재한다. 말그대로 입력받는 대부분의 키를 관리해주는 기능 Input Manager 에 접근하기 위해서는 Edit -> Project Settings 에서 좌측에 있는 Input Manager 를 들어가야 한다. Axes 를 펼치게 되면 현재 매핑되어 있는 키들을 확인해볼수 있다..
유니티2D 게임공작소 라는 책에 첫 예제로 나오는 Sample2_1 게임 입니다. 단순하게 탱크를 마우스로 클릭하면 앞으로 이동, 마우스를 떼게 되면 포탄을 발사하여 공룡 가슴에 있는 구슬에 맞추어야 하는 게임 입니다. 책을 보면 rigidbody2D.AddForce(new Vector2(+30.0f, 0.0f)); 라는 코드가 존재하는데 최신버전 유니티에서는 실행이 되지 않더라구요 이런식으로 오류가 발생합니다. 해결 방법으로는 해당 컴포넌트를 받아오는 변수를 선언하여 컴포넌트를 찾아옵니다. goShell 오브젝트의 경우 위에서 자식을 검색하였기 때문에 goShell 오브젝트가 가진 RigidBody2D 컴포넌트를 참조할수 있습니다. 변수의 이름으로 불러와 사용하게 되면 이상없이 잘 동작하는것을 볼수 있..
다른 오브젝트가 가지고 있는 스크립트의 함수를 사용해야 하는 경우가 발생한다. 두 오브젝트의 이름을 각각 Object01, Object02 로 설정해주고 이름과 같은 스크립트를 작성하여 오브젝트에 상속시켜준다. 각각의 오브젝트들에는 TestScript1, TestScript2 스크립트들이 들어있다. 다른 스크립트에서 변수, 함수의 호출및 수정을 허용하려면 변수나 함수의 접근 제어자를 public 으로 설정 해주어야 한다. 우선 TestScript2 에서 접근제어자가 public 인 int 변수 TestNubmer 을 선언하여 10 으로 초기화 해준다. 이렇게 스크립트를 작성하면 처음 Start 에서 디버그로 10을 찍어낼 것이고 계속하여 TestNumber 를 출력할것이다. 변동사항이 없다면 계속하여 1..
요 며칠 최대 고민거리라 하면 BehaiorTree 시뮬레이팅이 제대로 되지 않아서 매우 고통받았는데... 오늘 해결 문제점 1 Build.cs 파일에서 모듈을 추가 해야하는데 대소문자가 틀림 "GameplayTasks" 로 해야하는데 "GamePlayTasks" 로 입력하여 모듈이 제대로 실행되지 않음. 이는 디버거에서도 캐치하지 못하는 부분이라 사용자가 주의깊게 살펴봐야 하는 부분이라고 생각된다. 꼼꼼한 사람이라면 이런 실수도 적겠지 싶은데 행여나 나같은 실수 하는 사람이 있을까봐 적어둠. 문제점 2 AI cpp 파일에서 부모인 AAIController 의 BeginPlay 를 실행 안해줌. 부모의 클래스에서도 준비해주는것이 많기 때문에 Super::BeginPlay 를 통해 부모 클래스의 Begin..
프로그래밍을 하다보면 가장 많이 쓰는 단어중 하나가 NULL 인데 물론 0 맞다 f12 로 타고 들어가보면 알수 있다. 독일어로 숫자셀때 0 을 NULL 이라고 읽는덴다. 발음대로라면 눌 인데 그냥 널 이라고들 많이 통하는것 같다 뜻만 통하면 된거지 뭐... 또한 포인터를 초기화 할때 NULL 혹은 nullptr 로 초기화 하는 경우가 많은데 둘이 의미하는것은 똑같지만 nullptr 으로 초기화를 하게 되면 가끔 오류를 발생할때가 있다. NULL 이 만능이기도 하지만 그렇다고 nullptr 을 안쓰는것도 아니니 오류터지면 그냥 이것도 넣어보고 저것도 넣어보고... 참고로 nullptr 은 nullptr_t 란다.
윤성우 C++ 참 좋은책이다 그런데 가끔 보다보면 용어때문에 헷갈리는 경우가 있는데 아마 나를 가장 많이 괴롭힌건 기초클래스 유도클래스 일것이다... 부모 자식 이라고 나는 배웠는데 책을 쓰신분 께서는 기초클래스, 유도 클래스 라는 말이 더 마음에 드셧나보다 물론 책의 앞에도 나와있지만 가끔 헷갈리니까 한번 정리해놔야겠다 부모 클래스와 자식 클래스 상위 클래스와 하위 클래스 기초 클래스와 유도 클래스 슈퍼 클래스와 서브 클래스 이렇게 같은말이다... 상속에 관한건 전에 써놧을듯
프로그래밍을 처음 배울때 가장 먼저 우리는 변수와 함수, 그리고 각종 명령문에 대해서 배우곤 합니다. 하지만 깊은 이해를 하기 위해서는 주먹구구식으로 외운 함수와 변수, 그리고 for, if 같은 명령어를 사용하기 전에 프로그램이 어떻게 동작하는지, 메모리에 어떻게 올라가는지, 메모리가 어떤식으로 동작하는지를 먼저 알아야 한다고 생각합니다. 무조건적으로 코딩하는 방법을 배워서 프로그래밍에 익숙해지는것도 좋지만, 한번쯤은 이에 대해 어떻게 동작하는지 이해하는 시간을 갖는것도 나쁘지 않을것 같습니다. 우리가 프로그램을 짜서 실행하게 되면 메모리의 크게는 4개의 영역에 프로그램이 올라가고 그로 인해 프로그램이 실행하게 됩니다. 위에서 말한 프로그램의 4가지 영역은 어떤것이 존재할까요? 우선 간단한 설명을 하도..