티스토리 뷰

오늘은 지난 시간에 만든 플레이어 캐릭터의 스크립트를 설명하겠습니다. 

1. PlayerInput코드 설명

1. PlayerController라는 멤버 변수를 추가하였습니다.

2. Start()함수에서 PlayerController 멤버 변수의 값을 현재 PlayerInput 스크립트가 달려있는 게임 오브젝트 컴포넌트에서 찾아옵니다.
* GetComponent : 게임 오브젝트에서  컴포넌트가 연결되어있을때, 가져오려는 타입이 있을 경우에는 구성 요소를 반환하고 그렇지 않으면 null을 반환합니다.

3. var h = Input.GetAxisRaw("Horizontal")는 키보드의  ←,→를 누를때의 생성되는 입력 값을 h에 담습니다.
   var v = Input.GetAxisRaw("Vertical")는 키보드의  ↑,↓를 누를때의 생성되는 입력 값을 v에 담습니다.
   Vector3 moveVector = (Vector3.up * v) + (Vector3.righjt *h)는  상하 백터에 좌우 벡터를 더하여 상하 좌우 값을 가지는 벡터를 만들어줍니다. 
mPlayerController의 멤버변수 MoveVector3에 moveVector 값을 대입하여줍니다.

즉, 정리하면 위 1,2,3 번의 작업은 키보드에서 입력을 받은 값을 PlayerController의 스크립트에 전달하기 위한 코드입니다.

Input에 대한 설명은 아래 링크에 있습니다.
2019/05/20 - [Unity 이론] - #10 Unity input 매니저

GetComponent에 대한 설명은 아래 링크에 있습니다.
docs.unity3d.com/ScriptReference/Component.html

1. PlayerController코드 설명

 

1. 캐릭터를 이동하기 위하여 멤버 변수로 Vector3 MoveVector3를 만들어 Vector3.zero 값으로 초기화하여줍니다.
Vector3의 설명은 아래 링크에 있습니다.
docs.unity3d.com/ScriptReference/Vector3.html

캐릭터의 움직이는 속도를 위하여 멤버 변수로 float MoveSpeed를 만들어주었습니다.  

2. 매번 고정된 시간에 Move() 함수를 호출하여 줍니다.
trasform.Translate함수를 사용하여 캐릭터를 이용하여 줍니다.  이때 방향 값과 속도 값, 고정된 DeltaTime과 시간의 스케일 값을 넣어주어 이동시켰습니다. 

*Transform.Translate( Vector3 direction, [Space relativeTo] )에서 2번째 [Space relativeTo] 인자를 생략하면 로컬좌료를 기준으로 이동합니다.

Translate의 대한 설명은 아래 링크에 있습니다.
docs.unity3d.com/ScriptReference/Transform.Translate.html

다음 시간에는 플레이어 캐릭터의 애니메이션을 만드는 방법 2가지를 설명하도록 하겠습니다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함