Unity
[Unity]이벤트(Event)로 키 입력 관리하기
본 포스팅은 아래 링크의 강의를 듣고 정리한 것입니다. https://www.inflearn.com/course/mmorpg-%EC%9C%A0%EB%8B%88%ED%8B%B0 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진 - 인프런 | 강의 유니티 엔진 사용법 및 제공하는 기능들에 대해 알아보고, 그것을 효율적으로 관리하는 방법을 배우는 강의입니다., - 강의 소개 | 인프런... www.inflearn.com 📕이벤트(Event)로 키 입력 관리하기 유니티에서 키 입력을 받으려면 Update() 함수에서 Input.Getkey()를 호출해 주면 된다. 이렇게만 해도 게임에 쓰일 키 입력 시스템을 구현하는 데에는 지장이 없지만 이벤트를 사용하면 더욱 효과적으로 키 입력..
모듈화 프로그래밍이란?
📕모듈화 프로그래밍이란? 소프트웨어 개발에서 모듈이란 독립적인 기능이 있는 단위(unit)를 뜻한다. 여기서 중요한 것은 독립적이어야 한다는 것이다. 모듈은 모듈 자체로서 재사용될 수 있고 컴파일할 수 있어야 한다. 만약 모듈이 독립적이지 않다면 수정 과정에서 다른 모듈에 영향을 끼치게 되며 기능을 나눈 의미가 없어지게 된다. 모듈의 정의에서 알 수 있듯 모듈화 프로그래밍이란 프로그램을 설계할 때 프로그램의 각 기능을 분리하는 것이다. 이렇게 하면 프로그램의 복잡도가 줄어들어 유지 보수 및 코드 재사용이 쉬워진다. 즉 효율성이 향상된다. 모듈화 프로그래밍을 할 때 각 모듈의 크기는 정해진 바가 없지만 대신 몇 가지 지켜야 할 원칙이 있다. 앞서 말했듯 각 모듈은 독립적이어야 하며, 각 모듈은 가능한 한 ..

NCMB를 이용한 네트워크 구현2
저번 포스팅에 이어서 네트워크를 좀 더 연습하려고 한다. 이번에는 실제로 게임에 적용해 보기 위해 샘플 게임을 가져왔다. 먼저 저번과 마찬가지로 NCMBManager와 NCMBSettings 스크립트를 각각 빈 게임 오브젝트에 붙여주고 Application Key와 Client Key를 넣어줬다. 그런 뒤 적당히 메인 화면을 만들어준다. 대충 이런 느낌이다. 사용한 오브젝트는 다음과 같다. 간단하게나마 설명하자면 ControlSystem에 로그인과 계정 생성 등의 기능을 구현한 LoginSignUp 스크립트를 넣어 놓고 Button에서 OnClickEvent를 이용해 사용하는 방식이다. LoginSignUp의 코드는 다음과 같다. using System; using System.Collections; u..

NCMB를 이용한 유니티 네트워크 구현하기
NCMB란 일본 회사가 제공하는 mBaas로, 'nifcloud mobile backend'를 말한다. 오늘은 제목처럼 NCMB를 이용해 유니티 네트워크를 구현해 볼 거다. *mBaas(Mobile Backend as a Service) NCMB를 이용하려면 계정을 생성하고 플러그인을 다운로드 해야 한다. https://console.mbaas.nifcloud.com/login ニフクラ mobile backend console.mbaas.nifcloud.com 위 링크에서 계정을 만들어 준다. https://github.com/NIFCloud-mbaas/ncmb_unity/releases Releases · NIFCLOUD-mbaas/ncmb_unity ニフクラ mobile backend Unity SD..

방향탄
방향탄이란 특정한 목표를 향해 날아가는 조준탄과 다르게 임의의 방향으로 날아가는 탄환을 말한다. 탄막 슈팅 게임을 예로 들면 플레이어를 향해 직접적으로 날아오는 탄환이 조준탄이고 그 외에 다른 방향으로 뿌려지는 탄환이 방향탄이다. 방향탄의 속도 벡터를(Vx, Vy), 속도를 Speed, 발사각도를 theta (θ)라고 했을 때, 탄환을 발사하는 방법은 다음과 같다. 먼저 탄환을 발사하는 오브젝트(Cannon)와 탄환(Projectile) 오브젝트를 만들어준다. Cannon에는 스크립트가 들어있다. 스페이스 바를 누를 때마다 탄환이 자식으로 생성되며 발사 각도가 누적해서 더해진다. projectile 변수에는 탄환 오브젝트를 프리팹으로 넣어주었다. 탄환에는 탄환의 움직임을 구현한 스크립트가 들어있다. 탄환..
탄환의 속도
플레이어의 좌표 P(px, py)와 적의 좌표 E(ex, ey)이 주어졌을 때 E을 향해 날아가는 탄환이 있다고 하자. 출발 후 n번 후에 E에 도착한다고 했을 때 탄환의 벡터 B(bx, by)는 다음과 같이 표현할 수 있다. bx = (ex - px)/n by = (ey - py)/n 그러나 이 방법을 사용할 시 플레이어와 적의 위치가 변함에 따라 탄환의 속도도 함께 변하는 문제가 있다. 이를 해결하려면 플레이어와 적의 거리를 구해주어야 한다. 적과 플레이어의 거리 d 를 구하는 공식은 d = math.sqrt((ex - px)^2 + (ey - py)^2)이며 피타고라스 정리에서 도출된 식이다. 여기서 math.sprt는 제곱근을 반환하는 C#의 메서드이다. 이제 이렇게 구한 d를 n 대신 넣어주고 ..