Unity-기본 동작 스크립팅

이 레슨에서는 사용자의 입력에 따라 게임 오브젝트를 위, 아래, 왼쪽 및 오른쪽으로 이동시키는 코드를 작성합니다. 이를 통해 Unity 스크립팅의 워크 플로를 더 쉽게 이해할 수 있습니다.

모든 GameObject에는 최소한 하나의 구성 요소가 있습니다. Transform. 특별한 점은 게임 오브젝트의 Transform이 Unity의 스크립팅 측면에서도 변수로 표시되어 코드를 통해 수정할 수 있다는 것입니다. 이것은 Transform에만 국한되지 않습니다. Unity의 모든 구성 요소에는 스크립팅의 변수를 통해 액세스 할 수있는 속성이 있습니다.

이동 스크립트부터 시작하겠습니다. 새 스크립트를 만들고 이름을 "Movement"로 지정합니다.

이제 스크립트를 열면 지난 강의에서 본 것과 동일한 내용이 표시됩니다.

다음과 같은 공용 플로트 변수를 생성하겠습니다. speed. 변수 만들기public Unity에는 큰 이점이 있습니다.

  • 변수는 편집기 내에서 수정 가능한 필드로 표시되므로 코드에서 수동으로 값을 조정할 필요가 없습니다.

public class Movement : MonoBehaviour {
   public float speed;
}

다른 메서드를 건드리지 않고이 스크립트를 저장하면 Unity에서 컴파일해야합니다.

(

오른쪽 하단 의 아이콘으로 컴파일 중임을 알 수 있습니다 .)

다음, drag and dropAssets의 스크립트를 GameObject로 가져옵니다. 올바르게 수행하면 GameObject의 속성에서 볼 수 있습니다.

속도 값은 조정 가능하고 항상 코드에서 변경할 필요가 없으므로 start () 대신 update () 메서드를 사용할 수 있습니다.

이제 업데이트 방법의 목표를 고려해 보겠습니다.

  • 사용자 입력을 확인하십시오.

  • 사용자 입력이 있으면 입력 방향을 읽으십시오.

  • 속도와 방향에 따라 오브젝트 변형의 위치 값을 변경합니다. 이를 위해 다음 코드를 추가합니다.

void Update() {
   float h = Input.GetAxisRaw(“Horizontal”);
   float v = Input.GetAxisRaw(“Vertical”);
   
   gameObject.transform.position = new Vector2 (transform.position.x + (h * speed), 
      transform.position.y + (v * speed));

이제 간략하게 코드에 대해 논의하겠습니다.

우선, 우리는 부동 소수점 변수를 만듭니다. h (가로의 경우), 그 값은 Input.GetAxisRaw방법. 이 메서드는 플레이어가 위 / 아래 / 왼쪽 / 오른쪽 화살표를 누른 키에 따라 -1, 0 또는 1을 반환합니다.

Input 클래스는 키 누르기, 마우스 입력, 컨트롤러 입력 등의 형태로 사용자로부터 입력을받는 역할을합니다. GetAxisRaw 메서드는 이해하기가 약간 더 어렵 기 때문에 나중에 다시 설명하겠습니다.

다음으로 우리는 updating 게임 오브젝트의 위치를 ​​새 위치로 Vector2. Vector2는 2 개의 매개 변수를 사용합니다.x and y각각 값. x 값에 대해 객체의 합계를 제공합니다.current 위치와 그 speed, 키가 해당 위치에 눌려지는 모든 프레임에 효과적으로 약간의 양을 추가합니다.

이 스크립트를 저장하고 Unity로 돌아갑니다. Unity는 성공적으로 컴파일되면 모든 스크립트를 자동으로 업데이트하므로 스크립트를 반복해서 다시 연결할 필요가 없습니다.

이제 완료되었으므로 speedGameObject의 속성에서 0.8이라고합니다. 값이 높을수록 플레이어가 너무 빨리 움직이기 때문에 이것은 중요합니다.

이제 Play 그리고 당신의 첫 번째 작은 게임이 실행되는 것을보세요!

화살표 키를 누르고 이동해보십시오. 게임을 중지하려면 Play를 다시 누르십시오. 속도를 실시간으로 조정할 수도 있으므로 항상 중지하고 시작할 필요가 없습니다.

다음 단원에서는 강체와 충돌에 대해 배웁니다.