
public class Test : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Rotate(new Vector3(1.0f, 1.0f, 1.0f));
}
}
using UnityEngine;
// Test 클래스는 Unity의 MonoBehaviour를 상속받아 게임 오브젝트에 부착 가능한 컴포넌트 역할을 수행함
public class Test : MonoBehaviour
{
// Start() : 게임 시작 시 1회 실행되는 초기화 함수
void Start()
{
Debug.Log("Test 컴포넌트가 시작되었습니다.");
}
// Update() : 매 프레임마다 실행되는 함수 (초당 수십~수백 번 호출)
void Update()
{
// 현재 오브젝트를 X, Y, Z 축 방향으로 회전
transform.Rotate(new Vector3(1.0f, 1.0f, 1.0f));
}
}
Test 클래스는 MonoBehaviour를 상속받음MonoBehaviour는 Unity에서 게임 오브젝트의 컴포넌트로 동작할 수 있도록 해주는 기본 클래스이다.MonoBehaviour를 상속받은 클래스는 Unity의 게임 오브젝트에 부착(Attach)할 수 있으며, Start() 및 Update() 같은 주요 이벤트 함수를 사용할 수 있다.Start() 함수Debug.Log("Test 컴포넌트가 시작되었습니다.");를 통해 Unity 콘솔 창에 메시지를 출력함.Update() 함수transform.Rotate(new Vector3(1.0f, 1.0f, 1.0f));를 사용해 오브젝트가 계속 회전하도록 설정함.
GameObject는 하나의 컨테이너 역할을 하며, 원하는 컴포넌트(Component)를 추가 및 제거할 수 있다.AddComponent<T>() 메서드를 통해 런타임에서 동적으로 컴포넌트를 추가할 수도 있음.void Start()
{
// 현재 오브젝트에 새로운 Test 컴포넌트를 동적으로 추가
gameObject.AddComponent<Test>();
}
GameObject에 동일한 Test 컴포넌트를 부착하면, 동일한 기능을 여러 오브젝트에 적용할 수 있다.
코드의 결합도를 낮추고, 유지보수를 쉽게 할 수 있음.
코드를 재사용할 수 있어 생산성이 높아짐.
기능을 동적으로 추가/삭제할 수 있음.
AddComponent<T>()와 RemoveComponent<T>()를 사용하면 런타임에서도 동적으로 기능을 추가하거나 삭제할 수 있다.협업에 유리함.