본문 바로가기
반응형

유니티 공부/Unity100

Unity - Coroutine(코루틴) Coroutine(코루틴) 1. 사용 이유 Update함수는 게임 오브젝트가 활성화된 상태에서 매 프레임 호출되어 수행한다. 그런데 만약 3초동안 지연을 시키고 싶으면 어떻게 해야할까? Update함수 안에서 일정한 시간 간격을 두고 작업을 처리할 수 있도록 해야 한다. 코루틴은 함수 실행을 일시 중지하고 나중에 재개할 수 있는 기능을 제공한다. 이러한 특정 조건을 설정하기 위해서 yield문을 사용한다. 2. Code 예시 01 IEnumerator 함수 선언 코루틴은 IEnumerator를 반환하 함수로 선언된다. IEnumerator CoroutineExample() { yield return } 02 yield return 코루틴 함수 내에서 yield문을 사용하여 코루틴 함수의 실행을 일시 중지.. 2023. 5. 20.
Unity - IPointer Interface(IPointerEnterHandler등) IPointer Interface IPointer Interface를 사용하기 위해 using UnityEngine.EventSystem을 추가해주어야 한다. 마우스 이벤트를 처리하는 인터페이스이다. using UnityEngine.EventSystems; 1. IPointerEnterHandler 마우스의 커서가 충돌 영역 안으로 들어 올때 호출 되는 콜백 함수 public void OnPointerEnter(EventSystems.PointerEventData eventData); 2. IPointerExitHandler 마우스의 커서가 충돌 영역 밖으로 나갈 때 호출 되는 콜백 함수 public void OnPointerExit(EventSystems.PointerEventData eventData.. 2023. 5. 12.
Unity - SetActive, activeSelf 1. SetActive GameObject의 활성화/비활성화 여부를 설정하는 함수이다. 만약 GameObject가 비활성화되면 더 이상 화면에 보이지 않고 물리효과 또한 받지 않는다. Unity 사용 예시 public GameObject gameObject; gameObject.SetActive(true); gameObject.SetActive(false); 2. activeSelf GameObject가 현재 활성화되어 있는지 아닌지를 나타내는 bool값이다.(Read Only) 이를 통해서 GameObject의 활성화 상태를 확인하거나 변경하는데 사용한다. 예를 들어 특정 키를 입력 받았을때 GameObject의 activeSelf값을 변경하여 게임내에서 보여지거나 숨길 수 있다. Unity 사용 예시.. 2023. 5. 12.
Unity - 싱글톤(Singleton), Manager 싱글톤(Singleton) 해당 클래스의 인스턴스가 오직 하나만 생성되고 전역 접근을 할 수 있다. 특징 01 유일성 단 한 개의 객체만 존재하고 이는 다른 객체들이 이 인스턴스에 접근할 수 있도록 한다. 02 전역적 Singleton은 어디서든 접근 할 수 있다. 게임 시스템상에서 전역 변수의 역할을 한다. 여러 스크립트나 클래스에서 동일한 객체를 참조해야하는 경우 사용된다. 매니저(Manager) 게임에서 공통적으로 사용되는 기능을 관리한다. 이는 Singleton패턴을 이용하여 구현되므로 전역에서 접근가능한 인스턴스를 갖는다. 사용 이유 01 관리 게임의 여러 기능을 관리하고 조정하여 게임을 원할하게 진행하도록 한다. 예를 들어 오디오 매니저는 오디오를 관리하고, 리소는 매너저는 게임에서 사용되는 .. 2023. 5. 11.
Unity - ScriptableObject ScriptableObject 대량의 데이터를 저장하는데 사용할 수 있는 데이터 컨테이너이다. 게임 오브젝트에 부착할 필요가 없다. 장점 1. MonoBehaviour는 GameObject에 종속되어 있어 GameObject가 파괴될 때 같이 파괴되면서 데이터의 유연성과 재사용성을 제한 할 수 있다. 하지만 ScriptableObject은 데이터 만을 나타내기 때문에 Scene과 GameObject에 무관하다. 2. 인스턴스화를 생성하면서 메모리를 할당하지 않고 Asset으로 저장되면서 단일 인스턴스로 사용 가능하다. 이는 프로젝트 내의 여러 위치에서 참조 될 수 있고 내용이 수정되면 참조 하는 모든 곳에서 동일 하게 반영됨을 의미한다. Unity에서 사용 예시 CreateAssetMenu를 통해서 Sc.. 2023. 5. 10.
Unity - Transform.LookAt() Transform.LookAt() public void LookAt (Transform target, Vector3 worldUp= Vector3.up); 매개변수 target - 현재 Transform이 바라볼 위치 worldUp - Transform의 위쪽 방향을 결정합니다. worldUp가 필요한 이유 worldUp은 시선을 맞출 대상을 바라보는 방향이 아닌, 위쪽 방향을 결정하는 매개변수이다. 예를 들어 카메라의 매개변수로 사용될 경우 카메라가 플레이어와 수직 방향으로 있으면서 원하는 시선 각도를 구할 수 있다. Unity 코드 예시 transform.LookAt(player.position + Vector3.up); 카메라가 플레이어의 위치에 높이만큼 더한 지점을 바라보게 만든다. 플레이어 움직.. 2023. 5. 9.
반응형