본문 바로가기

Unity3d

유니티에서 스크립트를 이용해 게임 로직 구현하기

유니티는 매우 강력한 게임 엔진이며, 스크립트를 이용해 게임 로직을 쉽게 구현할 수 있게 해줍니다. 오늘은 유니티에서 C# 스크립트를 이용해 간단한 게임 로직을 만드는 방법에 대해 알아보겠습니다.

스크립트 만들기

우선, 유니티 에디터에서 새 스크립트를 만들어야 합니다. 이를 위해 프로젝트 탭에서 우클릭을 하고, Create > C# Script를 선택하면 됩니다. 스크립트의 이름을 원하는 것으로 바꿔주고, 엔터키를 눌러 스크립트를 생성합니다.

스크립트 편집하기

새로 생성한 스크립트를 더블클릭하면, 스크립트 편집기가 열립니다. 여기에서 우리는 게임 로직을 구현할 것입니다.

 

using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    private void Start()
    {
        Debug.Log("스크립트가 시작되었습니다!");
    }

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            Debug.Log("스페이스키가 눌렸습니다!");
        }
    }
}

 

위 코드는 스크립트가 시작될 때와 스페이스 키가 눌렸을 때 로그를 출력하는 간단한 예제입니다. Start 메서드는 스크립트가 시작될 때 호출되며, Update 메서드는 매 프레임마다 호출됩니다. 이런 메서드들을 이용해 다양한 게임 로직을 구현할 수 있습니다.

스크립트 적용하기

이제 유니티 에디터로 돌아와서 스크립트를 오브젝트에 적용해보겠습니다. 원하는 오브젝트를 선택하고, Inspector 탭에서 Add Component 버튼을 눌러 스크립트를 추가하면 됩니다. 이제 게임을 실행하면, 우리가 작성한 로직이 동작하는 것을 확인할 수 있습니다.

유니티의 스크립팅은 매우 유연하며 강력하므로, 이를 활용해 복잡한 게임 로직을 구현할 수 있습니다. 또한, 유니티는 다양한 내장 함수를 제공하므로, 이를 활용하면 보다 효율적으로 게임 로직을 구현할 수 있습니다.

이벤트와 함수

유니티 스크립트는 다양한 이벤트에 반응하여 동작합니다. 가장 대표적인 이벤트는 Update, FixedUpdate, Start, Awake 등입니다. 이들은 각각 다른 상황에서 호출되므로, 상황에 맞게 활용하면 됩니다. 예를 들어, Update 함수는 매 프레임마다 호출되므로 주로 게임 로직을 처리하는데 사용되고, FixedUpdate는 물리 계산을 처리하는데 주로 사용됩니다.

 

void Awake() {
    Debug.Log("Awake called.");
}

void Start() {
    Debug.Log("Start called.");
}

void Update() {
    Debug.Log("Update called.");
}

void FixedUpdate() {
    Debug.Log("FixedUpdate called.");
}

 

위의 예시 코드를 통해 각 함수가 언제 호출되는지 확인해볼 수 있습니다.

Input 처리하기

유니티에서는 Input 클래스를 이용하여 사용자의 입력을 처리할 수 있습니다. 이를 통해 키보드 뿐만 아니라 마우스, 게임패드 등의 입력을 처리할 수 있습니다.

 

void Update() {
    if (Input.GetKey(KeyCode.W)) {
        Debug.Log("W key is pressed.");
    }

    if (Input.GetMouseButtonDown(0)) {
        Debug.Log("Left mouse button is clicked.");
    }
}

 

위의 코드는 'W' 키가 눌리거나 마우스 왼쪽 버튼이 클릭될 때 로그를 출력하는 예시입니다.

 

이처럼 유니티에서는 C# 스크립트를 이용하여 게임 로직을 구현합니다. 스크립트는 게임의 움직임, 입력 처리, 인터랙션 등 다양한 부분에 활용되며, 이를 통해 게임을 보다 생동감있게 만들 수 있습니다. 다음 포스팅에서는 이보다 더 복잡한 게임 로직의 구현에 대해 알아보도록 하겠습니다.