코딩 2막 <C#개념편>(49)
-
[C#, 유니티] Unity LifeCycle(생명주기)
유니티 생명주기 개발자가 짠 소스코드에서 특별히 호출하지 않아도 호출되는 함수들이 있는데 그것을 우리는 유니티 생명주기라고 부른다. 이는 개발자가 정할 수 없는 주기로서, 생명주기에 대한 이해는 필수이다. 초기화 Awake, OnEnable 활성화 OnEnable 물리 FixedUpdate 게임로직 Update, LateUpdate 비활성화 OnDisable 해체 OnDestroy Reset : 오브젝트를 생성 후 인스펙터 뷰에서 리셋을 눌러줄 때 실행됩니다. 객체의 속성을 초기 값으로 설정해 줄 때 사용합니다. Awake : 스크립트가 실행될 때 한번만 호출됩니다. 모든 오브젝트가 초기화 된 후 호출되기 때문에 GameObject.Find 같은 명령문을 안전하게 사용할 수 있습니다. Awake 함수는 ..
2022.11.20 -
[C#, 유니티] 동적 라이브러리 (feat. dll)
DLL(동적 링크 라이브러리)? 소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는 것을 피하기 위해 표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것. 즉, 자주 사용되는 표준적인 함수를 매번 직접 작성해서 사용하는 것은 지나치게 시간 소모적이므로 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 것. 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여(혹은 다운로드받아) 기능을 호출 Dll의 장점 내용 손쉬운 배포와 설치 - DLL 내의 함수를 업데이트하거나 수정해야 하는 경우 DLL을 배포하고 설치할 때 프로그램을 DLL과 다시 연결하지 않아도 된다. - 여러 프로그램이 같은 DLL을 사용하는 경우에는 모든 프로그램에 업데이트나 수정 내용이 적용된다. 프..
2022.11.16 -
[C#, 유니티] 코루틴 IEnumerable, IEnumerator
0부터 100까지 짝수를 출력하고 싶다. 단 IEnumerable을 사용할 것 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class EvenNumberCollections : IEn..
2022.11.07 -
[C#, 유니티] factoryMethod와 AbstractFactory의 차이
오늘은 C#문법 가운데 디자인패턴 중 알아두면 좋은 팩토리메소드와 추상팩토리에 대해서 배웠습니다 먼저 팩토리 메소드와 추상 팩토리과 같은 패턴들을 쉽게 분석하는 방법은 클래스UML을 보는 것입니다 팩토리 메서드만 먼저 보게되면 Creator라는 클래스가 product의 형태로 가지고 있고, Product는 인터페이스라서 실체화하여 구현한 클래스이므로 자식클래스는 클래스UML을 점선으로 표시한것입니다 (abstract클래스를 상속받는 자식은 실선으로 표시) 그리고 Creator클래스가 가지고 있던 product에 팩토리메소드라는 함수를 만들어 넣어주었고 Creator라는 클래스를 상속받는 자식클래스들은 각 타입에 맞는 Product를 생성한다고 합니다 그럼 이제 Player라는 Creator Class와 ..
2022.11.03 -
[C#, 유니티] 리플렉션(Reflection)
Reflection이란 말 그대로 반사라는 의미를 담고 있다 반사되어 비추듯, 객체(instance)를 토대로 데이터타입의 메타적인(상위) 정보를 가져오는 기법이다 reflection의 기능을 이용하면 프로그램 실행 중에 객체의 형식 이름부터 프로퍼티 목록, 메서드 목록, 필드, 심지어 이벤트 목록까지 모두 열어볼 수 있다 이것이 왜 중요하냐면 런타임에서 메서드를 호출하거나 필드의 값을 바꾸는 등의 작업들을 할 수가 있게 된다!! 매서드 반환 형식 비고 GetFields() FieldInfo[] 해당 형식의 필드 목록 반환 GetMembers() MemberInfo[] 해당 형식의 멤버 목록 반환 GetMethods() MethodInfo[] 해당 형식의 메소드 목록 반환 GetProperties() P..
2022.10.11 -
[C#, 유니티] 클래스 다이어그램 <UML>
클래스 UML 시스템을 구성하는 클래스들간의 관계를 표현(즉 객체를 생성하기 위해 만든 설계도) 클래스란 동일한 속성&행위(변화의 기본 단위)를 수행하는 객체들의 집합을 의미 처음 시작단계에서 어설프게 설계부터 시작하지말고 약식의 가이드라인을 만들어 놓자 클래스 다이어그램을 그릴 수 있는 것은 개발자로서 매우 중요한 역량이지만 당장에 그릴 수 없더라도 괜찮다 용어들에 대한 정보를 완벽히 알지 못하더라도 화살표의 의미정도는 기억하고 있자! 공감해주셔서 감사합니다
2022.09.26