유니티/자료(7)
-
Unity Coroutine(코루틴)과 Update
Life Cycle 유니티는 한번에 하나의 작업만 처리하는 단일 스레드 방식으로, 기본적으로 이벤트 함수들을 기준으로 순환하는 함수 호출 주기(Life cycle)가 존재한다. 아래는 이벤트 함수들의 실행 순서를 대략적으로 나타낸 순서도이다. 여기서 Update의 형태를 가진 이벤트 함수들은 일정 주기마다 반복되며 순환하는 모습을 가지기 때문에 프로그램이 실행되는 동안 계속 수행되어야할 스크립트를 보통 이곳에 작성한다. Coroutine (코루틴) 그렇다면 코루틴은 무엇이며 왜 굳이 Update 함수를 두고 이것을 써야할까? 일단 코루틴의 장점을 알기 위해서는 기본 이벤트 함수 싸이클에서 코루틴이 어떤 순서로 위치하는지 알아야 한다. 아래 그림을 통해 결론부터 설명하자면, 어떤 코루틴이 시작되..
2020.02.09 -
Unity C# 병합연산자
병합연산자란? null 연산자 라고도 한다 null을 지원하는 자료형?이여야가능하다 ex) int? a = null 예제 1 c = a ?? b a가 null이 아니면 a를 c에 대입 a가 null 이면 b를 c에 대입 예제 2 if(A == null){ A = B;} A가 null이면 B를 A에 대입 위와같은코드를 아래와같이 바꿉니다 A ??= B; A가 null이면 B를 A에 대입 훨씬 간결해지는 코드위해서 병합연산자는 선택이아닌 필수입니다.
2020.02.02 -
Unity C# 클래스와 구조체의 차이점
- 클래스와 구조체의 차이점 - 클래스와 구조체는 데이터 타입생성기 라는 점에서는 유사하지만 아래와 같은 차이점이있다 * 구조체(struct)는 클래스를 상속을 할 수 없다. 다만 Interface는 상속가능 - 상속을 할 수 없으므로 멤버의 액세스 지정자에 protected를 사용할 수 없다. * 클래스(class)는 Reference타입 구조체(struct)는 Value타입 * 클래스(class) 객체는 힙(heap)에 할당되지만 구조체(struct) 객체는 스택(stack)에 할당된다.(타입차이에 따른 메모리 할당) - 하지만 구조체로 선언을 했어도 객체를 힙영역에 메모리를 할당할 때가 있다. 1. 모든 필드의 합이 16byte를 넘는 경우이다. 2. 구조체안에 클래스 타입을 필드로 가질 경우이다...
2020.02.02 -
Unity A* Algorithm 유니티 에이스타 알고리즘
A* Algorithm이란? 은 주어진 출발 꼭짓점에서부터 목표 꼭짓점까지 가는 최단 경로를 찾아내는(다시 말해 주어진 목표 꼭짓점까지 가는 최단 경로임을 판단할 수 있는 테스트를 통과하는) 그래프/트리 탐색 알고리즘 중 하나이다. 이 알고리즘은 각 꼭짓점 X에 대해 그 꼭짓점을 통과하는 최상의 경로를 추정하는 순위값인 "휴리스틱 추정값 " H(X) 을 매기는 방법을 쓴다. 이 알고리즘은 이 휴리스틱 추정값의 순서로 꼭짓점을 방문한다. 그러므로 A* 알고리즘을 너비 우선 탐색의 한 예로 분류할 수 있다. 이 알고리즘은 1968년 피터 하트, 닐스 닐슨, 버트램 라팰이 처음 기술하였다. 그 3명의 논문에서, 이 알고리즘은 A 알고리즘(algorithm A)이라고 불렸다. 적절한 휴리스틱을 가지고 이 알고리..
2020.01.28 -
Unity C# Call By Value , Call By Reference
Call By Value , Call By Reference 란? - Call By Value - 값에 의한 전달 - Call By Reference- 참조에 의한 전달
2020.01.27 -
Unity C#제네릭(Generic), <T>
제네릭 (Generic)* 형식 매개 변수를 사용하여 코드에서 클래스나 메서드를 선언 * 제네릭 메소드 - 메소드에 사용되는 변수의 타입을 일반화 *제네릭 클래스 - 클래스에 사용되는 변수의 타입을 일반화 아래는 제네릭 메소드예제입니다. 여러가지 자료형을 매개변수로 받는 ShowNumer 메소드들이 있습니다.매개변수로 받는 개수와 기능은 동일하지만 자료형이 달라 각각의 자료형을 만들어서 사용합니다. 제네릭을 사용하면 이를 더 간편하게 줄일수있습니다. 자료형을 일반화 시켜서 각각 맞는 자료형을 대입해주면 훨씬 간결하고 편하게 사용할수있습니다. 다음은 출력화면입니다. GetComponent 메소드도 같은 예라고 들수있습니다. GetComponentTransform() GetComponentBoxCollier..
2020.01.27