이번에도 영상녹화가 습관이 들지 않아 이미 만들어놓은 것을 캡쳐해서 올리도록 하겠습니다. 하하..
1. 게임오브젝트 프리팹화
먼저, 유니티 하이라키에 만들어놓은 유닛과 적군 오브젝트를 프로젝트에 만들어놓은 프리팹 폴더에 넣어 프리팹화 해주겠습니다.
이러면 하이라키에서 유닛과 적군 오브젝트에 들어있던 컴포넌트들이 저장된 상태에서 프리팹으로 변환되게 됩니다.
2. 이동구현
먼저, MovementController라는 이동구현을 위한 새로운 스크립트를 생성해주었습니다.
그 다음은 변수를 생성해줍니다.
-컴포넌트에 만들어놓은 Rigidbody를 담을 수 있는 myRigid 변수 생성
-이동을 담당한 Vector3의 값을 가지는 direction 변수 생성.
-유닛의 이동속도를 담당할 float형태의 speed 변수.
그리고 MovementController 스크립트를 유닛과 적군 컴포넌트에 넣어줍니다.
그럼 myRigid에 유닛과 적군 컴포넌트에 있는 Rigidbody컴포넌트를 할당해줍니다.
그 다음 이동구현을 위해서 myRigid.velocity를 이용해서 이동을 구현해줍니다.
※ Velocity: Rigidbody클래스 속하며, Vector3값을 가질 수 있음.
Update함수에 myRigid.velocity = direction * speed를 작성해서
게임창 내 실제 이동과 이동속도를 제어해줍니다.
그런 다음 유니티 프로젝트 화면으로 넘어가서 유닛과 적군에 넣어놓은 MovementController스크립트를 확인해줍니다.
그리고 생성된 Vector3값을 가지는 direction의 x를 원하는 값으로 설정해줍니다.
저는 유닛은 1, 적군은 -1로 설정하여 서로 마주보며 이동하게 해줬습니다.
이러면 유닛은 1씩, 적군은 -1씩 이동하게 되는데, 문제는 그 방향으로 360도 회전을 하면서 이동하게 됩니다.
이 때는 각각의 Rigidbody컴포넌트의 Constraints내에 있는 Freeze Rotation을 전부 체크해줍니다.
그러면 회전하지 않고 위 영상처럼 이동할 수 있게 됩니다.
'Unity > Unity 타워디펜스게임 프로젝트' 카테고리의 다른 글
[Unity 게임프로젝트] 타워디펜스게임(6) - 유닛, 체력바 추가 및 공격 기능 일부 수정 (0) | 2024.04.12 |
---|---|
[Unity Game Project] 타워디펜스 게임(5) - 유닛 공격과 이동기능 수정 (0) | 2024.03.24 |
[Unity 게임 프로젝트] 타워디펜스게임(4) - 유닛 복제, OnTrigger (0) | 2024.03.18 |
[Unity 게임 프로젝트] 타워디펜스 게임(2) - 스테이지 화면, 캐릭터 화면 UI 추가 및 유닛 추가 작업 (0) | 2024.03.08 |
[Unity게임 프로젝트] 타워디펜스 게임(1) - 홈, 스테이지 선택, 설정 화면 UI작업 (2) | 2024.03.07 |