기존 Unity 프로젝트는 다음의 관련된 두 가지 방식으로 객체 지향적 성격을 띱니다.
UnityEngine.Object에서 파생된 유형이 포함된 오브젝트 기반 모델을 사용합니다. 이 모델에서 씬은 다른 유형의 오브젝트와 상호 작용하고 제어되는 게임 오브젝트로 구성됩니다.객체 지향 개발의 대안은 데이터 지향 개발이며, 이는 프로그래밍 철학과 이러한 원칙을 구현하는 데 도움이 되는 일련의 기술을 모두 지칭합니다. 데이터 지향 방식은 규모가 커질수록 강력한 성능 이점을 제공하지만 경험이 없는 개발자가 배우기에는 더 어려울 수 있습니다.
객체 지향 개발과 데이터 지향 개발은 상호 배타적이지 않으며 양측 요소를 결합할 수 있습니다. 데이터 지향 개발에 대한 자세한 내용은 Unity의 데이터 지향 기술 스택을 참조하십시오.
| 항목 | 설명 |
|---|---|
| 오브젝트 변환 | 위치, 회전, 스케일을 변경하여 오브젝트를 이동하고 변환합니다. |
| 시간 및 프레임 속도 관리 | Unity가 시간을 측정하는 방법을 이해하여 애플리케이션에서 시간이 전달되는 속도를 관리하고 적절한 시간 스케일에 따라 값을 업데이트할 수 있습니다. |
| 런타임 시 프리팹 인스턴스화 | 프로그래밍 방식으로 프리팹을 인스턴스화하여 상대적으로 적은 코드로 게임 내에서 구조와 인상적인 효과를 구현할 수 있습니다. |
| 이벤트 처리 | 사용자 입력, 오브젝트 충돌, 물리 및 렌더링 업데이트 같은 이벤트에 애플리케이션을 응답하도록 만듭니다. |
| 프레임 간 작업 분할 | 코루틴을 사용하여 여러 씬에서 동기식으로 작업 실행을 분할합니다. 이는 여러 프레임에 걸쳐 점진적으로 진행해야 하는 작업(예: 페이드아웃 효과)에 유용할 수 있습니다. |
| 웹 서버와 상호 작용 | UnityWebRequest 시스템을 사용하면 애플리케이션이 HTTP를 통해 웹 서버와 상호 작용할 수 있습니다. |
| 런타임 시 오브젝트에 기능 추가 | Unity 프로퍼티 API를 사용하여 방문자 디자인 패턴을 구현하고 런타임 시 .NET 오브젝트에 새 작업을 추가합니다. |
| 일반적인 수학 함수 사용 | 애플리케이션에서 삼각 함수, 로그 함수, 기타 함수를 비롯한 일반적인 수학 함수를 사용합니다. |
| 무작위성 활용 | 일반적으로 필요한 유형의 무작위 값을 생성합니다. |
| 기즈모 및 핸들 | 씬 뷰와 게임 뷰에 선과 셰이프뿐만 아니라 인터랙티브 핸들과 컨트롤도 그릴 수 있습니다. |
| Null 레퍼런스 | Unity 프로젝트에서 null 레퍼런스 예외를 이해하고 진단합니다. |
| Unity 속성 | Unity 전용 C# 속성을 사용하여 코드에 대한 특수 동작을 정의합니다. |