본문 바로가기
728x90

Unity3

[Unity] MonoBehaviour란 MonoBehaviour에 대해 알아보기 전, 유니티의 동작 원리부터 알아보도록 하자.Unity의 원리유니티는 컴포넌트 기반 아키텍처를 사용한다. 게임 오브젝트는 여러 컴포넌트로 구성되어 있으며, 컴포넌트는 특정 기능을 담당한다.MonoBehaviour을 상속받은 스크립트는 게임 오브젝트의 동작을 정의하는 주요 컴포넌트이다.게임 오브젝트(GameObject) : 씬 내의 모든 개체를 의미한다. 각 게임 오브젝트는 여러 컴포넌트를 가질 수 있다.컴포넌트(Component) : 게임 오브젝트에 붙여서 특정 기능을 수행하는 모듈씬(Scene) : 게임의 각 단위를 구성하는 환경으로, 게임 오브젝트와 컴포넌트들이 배치되어 있다.즉, 유니티는 컴포넌트와 게임 오브젝트를 이용하여 게임을 만드는 엔진으로, OOP의 .. 2024. 11. 19.
[Unity] 코루틴(Coroutine)과 Invoke 코루틴(Coroutine)원래 유니티에서 메서드는 호출하면 단일 프레임 내에서 실행되고 완료된다.하지만 코루틴은 한 작업을 다수의 프레임에 분산시킬 수 있다. 즉, 여러 프레임 동안 실행시킬 수 있다.쉽게 말해, 코루틴은 여러 개의 루틴이 동시에 실행되게 해주며, 싱글 스레드 기반의 유니티에서 멀티스레드처럼 보이도록 병렬적인 구조를 만드는 기능이다.따라서 멀티스레드의 문제점인 race condition과 동기화 관련 문제를 고려하지 않아도 된다.모든 코루틴은 MonoBehaviour을 상속하는 객체들로 인해 실행되고, 그 객체들에게 코루틴의 소유권이 있다고 표현한다.따라서 MonoBehaviour 메서드인 StartCoroutine, StopCoroutine 등으로 실행과 정지를 시킨다.이 소유권을 가진.. 2024. 11. 19.
[Unity] 유니티 생명 주기 함수 Awake vs Start- Awake스크립트와 연결된 GameObject가 인스턴스화 되거나 스크립트가 처음 로드될 때 불림(인스턴스화 : 유니티에서 오브젝트가 실제로 생성되는 것)해당 오브젝트가 OnEnable 상태가 아니더라도 위 조건에 따라 로드되면 호출됨Awake에서 다른 오브젝트에 대한 참조를 하게 되면 오브젝트가 생성될 때 반드시 실행되기 때문에 참조를 반드시 생성할 수 있다. 하지만 조심해야될 점은 각 오브젝트의 Awake함수의 호출은 무작위로 되기 때문에 초기화 되지 않은 다른 스크립트의 참조를 통해 접근을 하면 NullReferencException이 발생하게 되기 때문이다.- StartStart 함수는 컴포넌트가 활성화되는 순간 불리게 된다.호출 시기는 Awake 함수보다는 느리지만,.. 2024. 11. 2.
728x90