유니티에서 가장 많이 사용하는 메서드와 클래스는 다양합니다. 여기서는 그 중 일부를 소개하겠습니다.
유니티에서 가장 많이 사용하는 메서드와 클래스 종류
1. Transform 클래스
모든 게임 오브젝트는 Transform 컴포넌트를 가지고 있으며, 이 컴포넌트는 게임 오브젝트의 위치, 회전, 크기 정보를 저장합니다. 따라서 Transform 클래스는 게임 오브젝트의 위치, 회전, 크기 정보를 조작하기 위해 가장 많이 사용됩니다.
- position: Transform 컴포넌트의 위치를 나타내는 Vector3 값입니다.
- rotation: Transform 컴포넌트의 회전을 나타내는 Quaternion 값입니다.
- localPosition: 부모 Transform의 좌표계에서 해당 Transform 컴포넌트의 위치를 나타내는 Vector3 값입니다.
- localRotation: 부모 Transform의 좌표계에서 해당 Transform 컴포넌트의 회전을 나타내는 Quaternion 값입니다.
- localScale: 부모 Transform의 좌표계에서 해당 Transform 컴포넌트의 크기를 나타내는 Vector3 값입니다.
- parent: 해당 Transform 컴포넌트의 부모 Transform을 나타내는 Transform 값입니다.
- childCount: 해당 Transform 컴포넌트의 자식 Transform 개수를 나타내는 정수 값입니다.
- GetChild(int index): 해당 Transform 컴포넌트의 인덱스에 해당하는 자식 Transform을 반환하는 메서드입니다.
- Translate(Vector3 translation): 해당 Transform 컴포넌트를 지정한 방향으로 이동시키는 메서드입니다.
- Rotate(Vector3 axis, float angle): 해당 Transform 컴포넌트를 지정한 축과 각도만큼 회전시키는 메서드입니다.
- LookAt(Transform target, Vector3 upVector): 해당 Transform 컴포넌트를 지정한 타겟을 향해 회전시키는 메서드입니다.
- SetParent(Transform parent): 해당 Transform 컴포넌트의 부모 Transform을 지정하는 메서드입니다.
- DetachChildren(): 해당 Transform 컴포넌트의 자식 Transform을 모두 제거하는 메서드입니다.
- GetComponentsInChildren<T>(): 해당 Transform 컴포넌트의 모든 자식 Transform 중에서 지정한 타입의 컴포넌트를 가진 모든 객체를 반환하는 메서드입니다. T는 가져올 컴포넌트 타입입니다. 2. GameObject 클래스
2. GameObject 클래스
GameObject 클래스는 모든 게임 오브젝트의 기본 클래스입니다. 이 클래스를 통해 새로운 게임 오브젝트를 생성하고, 컴포넌트를 추가하거나 삭제할 수 있습니다.
- activeSelf: 해당 GameObject가 현재 활성화 상태인지를 나타내는 부울 값입니다.
- name: 해당 GameObject의 이름을 나타내는 문자열 값입니다.
- tag: 해당 GameObject의 태그를 나타내는 문자열 값입니다.
- transform: 해당 GameObject의 Transform 컴포넌트를 나타내는 Transform 값입니다.
- layer: 해당 GameObject의 레이어를 나타내는 정수 값입니다.
- gameObject.SetActive(bool value): 해당 GameObject를 활성화 또는 비활성화하는 메서드입니다.
- gameObject.GetComponent<T>(): 해당 GameObject의 지정한 타입의 컴포넌트를 반환하는 메서드입니다. T는 가져올 컴포넌트 타입입니다.
- gameObject.AddComponent<T>(): 해당 GameObject에 지정한 타입의 컴포넌트를 추가하는 메서드입니다. T는 추가할 컴포넌트 타입입니다.
- gameObject.SetActiveRecursively(bool value): 해당 GameObject와 해당 GameObject의 모든 하위 GameObject를 활성화 또는 비활성화하는 메서드입니다.
- gameObject.SendMessage(string methodName, object value): 해당 GameObject에 있는 모든 MonoBehaviour 객체의 지정한 메서드를 호출하는 메서드입니다. methodName은 호출할 메서드의 이름이고, value는 전달할 인수입니다.
3. Input 클래스
Input 클래스는 키보드, 마우스, 게임 패드 등 입력 장치로부터 입력 값을 받아올 때 사용됩니다. 게임에서 유저의 입력 값을 처리하기 위해 가장 많이 사용되는 클래스 중 하나입니다.
- GetKey(KeyCode key): 해당 키보드 키가 눌렸는지를 검사하는 메서드입니다. KeyCode는 검사할 키를 지정하는 열거형 값입니다.
- GetKeyDown(KeyCode key): 해당 키보드 키가 눌렸을 때 한 번만 이벤트가 발생하는 메서드입니다.
- GetKeyUp(KeyCode key): 해당 키보드 키가 떼어졌을 때 한 번만 이벤트가 발생하는 메서드입니다.
- GetAxis(string axisName): 지정된 입력 축의 값(범위는 -1.0 ~ 1.0)을 반환하는 메서드입니다. axisName은 검사할 입력 축 이름을 나타냅니다.
- GetButton(string buttonName): 지정된 이름의 버튼이 눌렸는지 여부를 나타내는 메서드입니다. buttonName은 버튼 이름을 나타냅니다.
- GetButtonDown(string buttonName): 지정된 이름의 버튼이 눌렸을 때 한 번만 이벤트가 발생하는 메서드입니다.
- GetButtonUp(string buttonName): 지정된 이름의 버튼이 떼어졌을 때 한 번만 이벤트가 발생하는 메서드입니다.
- mousePosition: 현재 마우스의 위치를 나타내는 Vector2 값입니다.
- mouseScrollDelta: 마우스 휠 스크롤 값의 변화를 나타내는 Vector2 값입니다.
- touches: 현재 화면에 터치 중인 모든 터치 입력을 나타내는 Touch 배열입니다.
- touchCount: 현재 화면에 터치 중인 터치 입력의 개수를 나타내는 정수 값입니다.
- GetTouch(int index): 지정된 인덱스의 터치 입력을 반환하는 메서드입니다.
- touchSupported: 현재 터치 입력이 지원되는지 여부를 나타내는 부울 값입니다.
4. Rigidbody 클래스
Rigidbody 클래스는 게임 오브젝트에 물리 엔진 효과를 부여하기 위해 사용됩니다. 이 클래스를 사용하여 게임 오브젝트에 물리 효과를 추가하거나, 물리 엔진을 통해 움직이는 물체를 구현할 수 있습니다.
- mass: Rigidbody의 질량을 나타내는 부동 소수점 값입니다.
- drag: 공기 저항 값을 나타내는 부동 소수점 값입니다.
- angularDrag: 회전 공기 저항 값을 나타내는 부동 소수점 값입니다.
- useGravity: 중력을 사용하는지 여부를 나타내는 부울 값입니다.
- isKinematic: 다른 물리 엔진에서 처리되는 대신 이 Rigidbody의 위치 및 회전을 제어할지 여부를 나타내는 부울 값입니다.
- velocity: Rigidbody의 속도를 나타내는 Vector3 값입니다.
- angularVelocity: Rigidbody의 각속도를 나타내는 Vector3 값입니다.
- freezeRotation: Rigidbody의 회전을 고정할지 여부를 나타내는 부울 값입니다.
- AddForce(Vector3 force, ForceMode mode): Rigidbody에 힘을 적용하는 메서드입니다. force는 적용할 힘을 나타내는 Vector3 값이고, mode는 힘의 적용 방식을 나타내는 열거형 값입니다.
- AddTorque(Vector3 torque, ForceMode mode): Rigidbody에 토크를 적용하는 메서드입니다. torque는 적용할 토크를 나타내는 Vector3 값이고, mode는 토크의 적용 방식을 나타내는 열거형 값입니다.
- MovePosition(Vector3 position): Rigidbody의 위치를 이동하는 메서드입니다. position은 이동할 위치를 나타내는 Vector3 값입니다.
- MoveRotation(Quaternion rotation): Rigidbody의 회전을 변경하는 메서드입니다. rotation은 변경할 회전을 나타내는 Quaternion 값입니다.
- Sleep(): Rigidbody를 저녁 모드로 전환하는 메서드입니다. 저녁 모드에서는 물체의 시뮬레이션이 중지되어 성능을 최적화할 수 있습니다.
5. Collider 클래스
Collider 클래스는 게임 오브젝트에 충돌 검사를 추가하기 위해 사용됩니다. 이 클래스를 사용하여 게임 오브젝트의 충돌 범위를 설정하고, 충돌이 감지되었을 때 실행될 코드를 작성할 수 있습니다.
- BoxCollider: 박스 모양의 충돌체를 생성하는 클래스입니다.
- SphereCollider: 구 모양의 충돌체를 생성하는 클래스입니다.
- CapsuleCollider: 캡슐 모양의 충돌체를 생성하는 클래스입니다.
- MeshCollider: 메시 모양의 충돌체를 생성하는 클래스입니다. 복잡한 모양의 충돌체를 만들 수 있으며, 다른 Collider와 충돌하는 데 걸리는 시간이 더 많습니다.
- WheelCollider: 바퀴 모양의 충돌체를 생성하는 클래스입니다. 자동차와 같은 차량을 모델링하는 데 사용됩니다.
- TerrainCollider: 지형 모양의 충돌체를 생성하는 클래스입니다. 지형의 높이맵 데이터를 기반으로 충돌체를 생성합니다.
- CharacterController: 캐릭터와 같은 이동 가능한 객체를 위한 충돌체를 생성하는 클래스입니다. Rigidbody와 다르게, 이동할 때 사용자가 직접 속도와 이동 거리를 제어합니다.
이 외에도 다양한 Collider 클래스가 있으며, 각 클래스는 다른 충돌 검사 방식과 특징을 가지고 있습니다.
6. AudioSource 클래스
AudioSource 클래스는 게임 오브젝트에 소리를 추가하기 위해 사용됩니다. 이 클래스를 사용하여 오디오 클립을 설정하고, 오디오를 재생하거나 정지하는 등의 작업을 수행할 수 있습니다.
- AudioClip: AudioSource에 재생할 오디오 클립을 지정하는 클래스입니다. Audio Clip은 AudioClip 클래스로 지정됩니다.
- AudioMixerGroup: AudioSource를 Audio Mixer Group으로 라우팅할 수 있는 클래스입니다. Audio Mixer Group은 볼륨, 이퀄라이저, 컴프레서 등을 사용하여 오디오를 믹싱하고 효과를 적용하는 데 사용됩니다.
- AudioSource: Unity에서 제공하는 기본 AudioSource 클래스입니다. 오디오를 재생하고 조작하는 데 사용됩니다.
- DynamicBoneAudioSource: 뼈 모델링에 사용되는 AudioSource입니다. 뼈를 이용해 물리 시뮬레이션을 수행하며, 소리를 출력할 수 있습니다.
- NavMeshAgentAudioSource: 네비게이션 에이전트가 소리를 재생할 때 사용하는 AudioSource입니다. 경로를 따라 이동하며, 걷기, 뛰기 등의 효과음을 출력할 수 있습니다.
이외에도 AudioSource를 확장한 다양한 종류의 클래스가 존재합니다.
7. MonoBehaviour 클래스
MonoBehaviour 클래스는 유니티에서 스크립트를 작성하기 위한 기본 클래스입니다. 이 클래스를 상속받아서 스크립트를 작성하고, 게임 오브젝트에 컴포넌트로 추가할 수 있습니다.
MonoBehaviour 클래스는 Unity에서 가장 중요한 클래스 중 하나입니다. MonoBehaviour는 Unity에서 사용되는 모든 스크립트의 기본 클래스입니다. 이 클래스를 상속받아서 컴포넌트를 만들고, 게임 오브젝트와 상호작용하는 스크립트를 작성할 수 있습니다. 일부 주요 MonoBehaviour 클래스는 다음과 같습니다.
- Animator: 2D 또는 3D 애니메이션을 제어하는 클래스입니다. 애니메이션 클립, 파라미터 등을 관리하며, 애니메이션을 제어합니다.
- AudioSource: 게임 오브젝트에서 오디오를 재생하는 클래스입니다. AudioClip을 재생하거나, 볼륨, 피치, 3D 소리 등을 조작할 수 있습니다.
- Camera: 게임에서 사용되는 카메라를 제어하는 클래스입니다. 카메라 위치, 회전, 시야 등을 조작할 수 있습니다.
- Collider: 충돌 검사를 수행하는 클래스입니다. 다양한 유형의 충돌체를 생성할 수 있으며, 게임 오브젝트 간의 충돌 검사를 수행합니다.
- Input: 사용자 입력을 관리하는 클래스입니다. 마우스, 키보드, 조이스틱 등의 입력을 처리하고, 입력값을 반환합니다.
- Rigidbody: 물리 시뮬레이션을 적용하는 클래스입니다. 물체의 질량, 이동, 회전 등을 제어하고, 물리 엔진을 이용해 충돌 감지 및 반응을 처리합니다.
- UI: 게임 인터페이스를 구현하는 클래스입니다. 버튼, 텍스트, 이미지 등의 UI 요소를 생성하고, 이벤트를 처리합니다.
이외에도 다양한 MonoBehaviour 클래스가 존재합니다. 게임 개발에 필요한 다양한 컴포넌트를 구현할 수 있습니다.
8. Time 클래스
Time 클래스는 게임에서 시간과 관련된 작업을 수행하기 위해 사용됩니다. 이 클래스를 사용하여 프레임 레이트, 게임 시간, 리얼 타임 등의 정보를 얻어올 수 있습니다.
Time 클래스는 Unity에서 시간과 관련된 기능을 제공하는 클래스입니다. 게임에서 시간은 매우 중요한 요소 중 하나이며, Time 클래스는 게임에서 시간을 제어하는 데 매우 유용합니다. 일부 주요 Time 클래스는 다음과 같습니다.
- Time.deltaTime: 프레임당 경과 시간을 반환하는 속성입니다. 이 값을 이용해 게임의 물리 시뮬레이션, 애니메이션, 이동 등을 제어할 수 있습니다.
- Time.fixedDeltaTime: 고정된 프레임당 경과 시간을 반환하는 속성입니다. 이 값은 물리 시뮬레이션에서 사용되며, 고정된 시간 간격으로 물리 계산을 수행합니다.
- Time.timeScale: 게임 시간의 진행 속도를 조절하는 속성입니다. 이 값을 이용해 게임을 일시정지하거나, 빠르게 진행시킬 수 있습니다.
- Time.time: 게임이 시작된 이후 경과한 시간을 반환하는 속성입니다. 게임 내에서 경과 시간을 측정하거나, 타이머를 구현하는 데 사용될 수 있습니다.
- Time.fixedTime: 고정된 프레임당 경과 시간을 반환하는 속성입니다. 이 값은 물리 시뮬레이션에서 사용되며, 물리 계산에 사용된 시간을 나타냅니다.
- Time.realtimeSinceStartup: 시스템 부팅 이후 실제 경과 시간을 반환하는 속성입니다. 이 값을 이용해 게임 내에서 실제 시간을 측정하거나, 경과 시간을 저장하는 데 사용될 수 있습니다.
이외에도 다양한 Time 클래스 속성과 함수가 존재합니다. 게임에서 시간을 관리하고 제어하는 데 매우 유용합니다.
9. Camera 클래스
Camera 클래스는 게임에서 카메라를 구현하기 위해 사용됩니다. 이 클래스를 사용하여 게임 오브젝트에 카메라를 추가하고, 카메라의 위치, 회전, 시야 등을 설정할 수 있습니다.
- Camera 클래스는 Unity에서 카메라를 제어하는 데 사용되는 클래스입니다. 게임에서는 카메라가 매우 중요한 역할을 수행하며, 카메라 클래스를 통해 다양한 기능을 제어할 수 있습니다. 일부 주요 Camera 클래스는 다음과 같습니다.
- Camera.main: 현재 활성화된 메인 카메라를 반환하는 속성입니다. 이 속성을 이용해 게임 내에서 기본적으로 사용되는 카메라를 참조할 수 있습니다.
- Camera.aspect: 카메라의 종횡비를 반환하는 속성입니다. 이 값을 이용해 게임의 화면 비율을 조절할 수 있습니다.
- Camera.fieldOfView: 카메라의 시야각을 조절하는 속성입니다. 이 값을 이용해 게임의 시야각을 조절할 수 있습니다.
- Camera.orthographic: 카메라의 투영 방식을 설정하는 속성입니다. 이 값을 이용해 게임의 투영 방식을 선택할 수 있습니다.
- Camera.depth: 카메라의 레이어 깊이를 설정하는 속성입니다. 이 값을 이용해 게임 내에서 카메라가 그리는 순서를 조절할 수 있습니다.
- Camera.cullingMask: 카메라가 그리는 레이어를 설정하는 속성입니다. 이 값을 이용해 게임 내에서 카메라가 그리는 대상을 선택할 수 있습니다.
- Camera.clearFlags: 카메라의 배경을 설정하는 속성입니다. 이 값을 이용해 게임 내에서 카메라의 배경을 변경할 수 있습니다.
이외에도 다양한 Camera 클래스 속성과 함수가 존재합니다. 카메라 클래스는 게임에서 매우 중요한 역할을 수행하며, 게임 내에서 카메라를 제어하는 데 매우 유용합니다.
'유니티 개발일지' 카테고리의 다른 글
유니티 Raycast Target 사용 예시 (0) | 2023.04.27 |
---|---|
유니티 Raycast 역할, 메서드 종류, 필요성, 코드 활용 예시 (0) | 2023.04.26 |
유니티 Time 클래스 (메서드 종류, 활용 예시) (0) | 2023.04.24 |
유니티 초보자를 위한 책, 꿀팁, 사이트 추천 (2) | 2023.04.24 |
유니티(Unity) 설치 방법 (0) | 2023.04.24 |
댓글