[ 멤버 ]
멤버는 클래스와 구조체에서 객체의 데이터와 동작을 나타낸다. 대표적으로 다음과 같은 요소들이 있다. 이외 다른 요소들은 하단의 링크에서 확인할 수 있다.
필드 | 객체의 데이터를 저장하는 변수 |
메서드 | 객체가 수행할 수 있는 행동 |
생성자 | 객체를 처음 생성할 때 초기화하는 메서드 |
이벤트 | 다른 객체에게 특정 액션에 따른 알림 제공 |
▼ 참고 자료
https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/members
[ 클래스 상속 ]
public virtual string
클래스를 상속할 때 사용되는 키워드는 virtual과 override이다.
상속을 하는 부모 클래스에서 virtual 키워드가 있는 멤버는 파생 클래스에서 재정의 될 수 있다. 파생 클래스에서 필요에 따라 부모 클래스의 함수를 가져와서 새로운 구현을 할 수 있다.
상속을 받는 자식 클래스에서 override 키워드가 있는 멤버는 기본 클래스의 멤버를 재정의할 수 있다. 상속받을 클래스 이름 옆에 " : 기본 클래스명"을 작성하면 된다.
virtual 키워드가 작성된 클래스에 한해서 override를 사용할 수 있다. 또한 virtual 키워드는 private 클래스에 적을 수 없다. proteced는 상속받은 클래스에 한해서 접근할 수 있지만, private는 오로지 본인만 접근할 수 있다.
[ 유니티 라이프 사이클 ]
유니티에는 스크립트 라이프 사이클이 존재한다. 스크립트가 실행되면 스크립트의 수명 주기 동안 사이클에 맞게 순차적으로 이벤트가 실행된다.
스크립트가 실행됐을 때 가장 먼저 실행되는 함수는 Awake이다. 그래서 로직을 짤 때 Start 메서드에서 오브젝트가 활성화되기 전, 초기 설정을 해야 하는 것들은 Awake에서 작업한다.
그리고 스크립트의 생명 주기는 Destroy 메서드가 실행되면서 끝이 난다. 이후 재실행하면 Awake 메서드부터 다시 실행 되면서, 해당 실행을 반복한다.
▼ 참고 자료
https://docs.unity3d.com/kr/2019.4/Manual/ExecutionOrder.html
[ 회고 ]
오늘 텍스트 게임 최종 제출을 위한 수정을 하면서 가장 어렵게 느껴졌던 부분은 구현할 로직들을 클래스와 메서드로 나누는 것이었다. 코드를 작성하다 보니 비슷하거나 중복되는 코드도 많이 생겼고, 분명 상속 기능을 사용해서 구현할 수 있을 것 같은데 그 방법을 잘 알지 못했다. 클래스를 상속하고 상속받을 수 있는 키워드에 대해 배웠으니, 이를 활용해서 효율적으로 코드를 짜는 방법을 연구해 봐야겠다.
'Coding > C#' 카테고리의 다른 글
[내일배움캠프 12일차 TIL] 인터페이스, enum, 델리게이트, 람다, Func, Action, LINQ, Nullable (0) | 2024.04.30 |
---|---|
[내일배움캠프 11일차 TIL] 배열과 리스트 비교, 로직 설계 방법 (0) | 2024.04.29 |
[내일배움캠프 9일차 TIL] Txt 게임 만들기 (1) | 2024.04.25 |
[내일배움캠프 8일차 TIL] 비트 연산자, 시프트 연산, 단축 평가, 비트 플래그, 2진법 (0) | 2024.04.24 |
[내일배움캠프 7일차 TIL] 배열, 컬렉션, 메서드, 구조체, 조건문, 반복문 (0) | 2024.04.23 |