본문 바로가기
관/핫한 오마주 프로젝트 게임개발

오마주버그 01 (유니티 프로젝트 생성 편).

by 4차원 박스 2020. 8. 7.

게임이름은 간단하게 <오마주버그>로 정하였다!

최대한 이 글을 읽는 분들이 따라하기 편하게끔 적어보도록 노력하는방향으로 해본다! (이해가지 않는 부분이나 되지 막히는 부분은 댓글로 주세요 단! 저도 초보라 해결못할가능성이 큽니다ㅎㅎ).

 

아래는 앞서 어떤 계기로 이 프로젝트를 하게되었는지의 링크 입니다!

2020/08/03 - [실전 개발!/핫한 아이디어] - 개발 프로젝트 아이디어

 

우선 어떤 형식으로 할 지 부터 정한다.

이전 닷지프로젝트에서 3D로 했던 것과는 달리 이번에는

2D방식으로 도전한다.

 

이유는 다음과 같다. 오마주 한 레이디버그가 2D이고

아직까지 2D방식을 못해본 점, 2D가 생각보다 에셋을 다루는

진입장벽이 낮다는 점에 착안하여 다루게 되었다.

 

에셋은 애니메이션이 있는 이 에셋과

아이템역할을 맡을 다른 에셋으로 정할예정이다.

(아이템을 담당할 에셋은 아직 정하지 못하였다).

이 에셋으로 정하였다.

에셋 소개는 아래 링크를 참고하자!

https://hotstudy.tistory.com/81

 

닷지 게임제작 기초 18(닷지 난이도 설정과 에셋사이트 소개 편).

드디어 닷지를 완성한다! 닷지를 닷지답게 난이도를 수정하고 퀄리티를 높이는 에셋 사이트를 소개한다! 현재 만든 닷지의 모습은 대강 이러하다. 이걸 진짜 닷지같이 만들기 위해 총알 생성기�

hotstudy.tistory.com

 

다음과 같이 새로운 프로젝트를 유니티 허브에서 생성해주자!

이번엔 오브젝트를 나중에 바꿀 자신이 없기에 다운받은 에셋을 가지고

바로 에셋을 가지고 다루어본다.

 

드래그 드롭으로 Assets에 옮긴다.

이제 에셋의 여러 캐릭터들 중에서 플레이어로

무엇을 선택할지 결정하자.

 

결정하였으면 하이어라키 창으로 끌어오고

(만일 결정한 캐릭터/오브젝트가 여러개로 묶여져서

하이어라키 창으로 옮겨지지 않는 상태라면 바로 이후에 다룰 예정이므로

바로 아래 순서를 따라해 주세요).

 

오브젝트의 이름을 Player로 해준다.(국룰이다).

적당히 크기조절과 위치조절을 해준다.

 

기본적으로 아이디어는 닷지를 만들면서

떠올렸기에 상당한 부분은 닷지의 제작 부분과 유사한 방식으로 흘러간다.

따라서 동작 방식도 유사하게 할 예정이다.

 

플레이어 태그를 구별하여 플레이어일 경우에 죽음 함수를

실행 시킬 예정이므로 태그를 Player로 해준다.

기본적으로 Player태그가 마련이 되어 있으므로 선택해준다.

그 다음은 물리적인 처리가 가능하게끔

Rigidbody 2D 컴포넌트를 추가한다 (2D에서는 2D컴포넌트이다).

가장먼저 플레이어의 기능부터 생각해본다.

플레이어는 당연 움직이는 기능만 가진다.

키보드를 통해 처리를 한다면 다음과 같이 처리를 할 것이다.

public class PlayerController : MonoBehaviour

{

Rigidbody playerRigidbody;

public float speed = 8f;

void Start()

{

playerRigidbody = GetComponent<Rigidbody>();

}

 

 

void Update()

{

float xinput = Input.GetAxis("Horizontal");

float zinput = Input.GetAxis("Vertical");

 

if( xinput<0)

{

transform.Rotate(new Vector3(0, -180, 0) * Time.deltaTime);

}

if (xinput > 0)

{

transform.Rotate(new Vector3(0, 180, 0) * Time.deltaTime);

}

 

float xspeed = xinput * speed;

float zspeed = zinput * speed;

 

Vector3 NewVelocity = new Vector3(xspeed, 0f, zspeed);

playerRigidbody.velocity = NewVelocity;

}

}

 

맞다 이건 닷지에서의 코드를 그대로 가져온 것이다.

따라서 여기에서는 제대로 동작하지 않을 것이다!

이유는 닷지는 3D기반이었고 스페이스버그는 2D 기반의 게임이기 때문이다.

 

따라서 2D임을 생각하여 수정을 해야한다.

1. 컴포넌트의 차이

2. 벡터3와 벡터2의 차이.

3. 2D3D의 축차이.

 

를 생각하며 수정하되 이번엔 개인적인 욕망으로

키보드가 아닌 마우스로 이동을 구현을 시도해 보고자 한다!

 

다음 포스팅 에서는

마우스 처리 이벤트를 참고하여 시도를 해보고

만일 실패하면 키보드로 해본다.

댓글