Version: 2021.2
언어: 한국어
스크립트 생성 및 사용
런타임 시점에 프리팹 인스턴스화

변수와 인스펙터

본질적으로 스크립트의 작성은 다른 컴포넌트와 마찬가지로 게임 오브젝트에 연결할 수 있는 자신만의 새로운 컴포넌트 타입을 만드는 것입니다.

인스펙터에서 편집 가능한 프로퍼티를 갖는 다른 컴포넌트와 마찬가지로 스크립트의 값을 인스펙터에서 편집할 수 있습니다.

using UnityEngine;
using System.Collections;

public class MainPlayer : MonoBehaviour 
{
    public string myName;
    
    // Use this for initialization
    void Start () 
    {
        Debug.Log("I am alive and my name is " + myName);
    }
}

이 코드는 “My Name”이라고 표시된 인스펙터에 편집 가능한 필드를 생성합니다.

이름이 다음 규칙 집합 중 하나를 따르는 경우 인스펙터는 스크립트에서 변수 이름을 정의하는 것과 다른 방법으로 변수 이름을 표시할 수 있습니다.

  • 시작 부분에서 “m_” 제거
  • 시작 부분에서 “k” 제거
  • 시작 부분에서 “_” 제거
  • 첫 글자를 대문자로 표기
  • 소문자와 대문자 사이에 공백 추가
  • 다음 단어의 시작 부분에 있는 머리글자어와 대문자 사이에 공백 추가

“iPad” 또는 “x64”와 같이 이러한 규칙이 적용되지 않는 몇 가지 특별한 사례도 있습니다.

Unity는 변수 이름에 대문자가 있을 때마다 공백을 더해 인스펙터 레이블을 만듭니다. 하지만 이는 표시 목적일 뿐 코드에서는 항상 변수 이름을 사용해야 합니다. 이름을 편집한 후 재생을 누르면 입력한 텍스트가 포함된 메시지가 표시될 것입니다.

C#에서 인스펙터에서 변수를 확인하는 가장 간단한 방법은 변수를 public으로 선언하는 것입니다. 또는 SerializeField를 사용할 수도 있습니다. 반대로 HideInInspector를 사용하여 public 변수가 인스펙터에 표시되는 것을 방지할 수 있습니다.

사실 Unity에서는 게임 실행 중에 스크립트 변수 값을 변경할 수 있습니다. 정지시키고 다시 시작할 필요 없이 변경 사항의 효과를 직접 볼 수 있어 매우 유용합니다. 게임플레이가 끝나면 변수 값은 재생 이전으로 초기화됩니다. 따라서 영구적인 손실을 우려할 필요 없이 오브젝트의 설정을 자유롭게 미세 조정할 수 있습니다.

스크립트 생성 및 사용
런타임 시점에 프리팹 인스턴스화