강의를 시청하다 as 연산자를 처음 봐서 이해가 안되어 정리해보는 시간을 가지게 되었습니다.
먼저 찾아보려던 as 연산자에 대해 알아보다 캐스팅 연산자라는 개념을 알게 되었습니다.
캐스팅 연산자라는 것은 상속관계의 클래스간에 형변환이 필요할 때 사용합니다.
as라는 키워드도 상속관계의 클래스의 형변환 여부를 알아보기 위해 사용하는 듯 합니다.
강의를 들으며 작성한 코드의 일부를 가져왔습니다.
[대충 어택SO의 매개변수를 받는 함수](AttackSO attackSO)
{
RangedAttackSO rangedAttackSO = attackSO as RangedAttackSO;
if (rangedAttackSO == null) return;
.
.
.
}
해당 코드 RangedAttackSO 는 AttackSO의 하위 클래스이며
AttackSO 는 공격의 요소를 분류해놓은 클래스
RangedAttackSO는 원거리 공격의 요소를 분류해놓은 클래스입니다.
as를 사용하여 매개변수로 받은 attackSO 가 RangedAttackSO로 형변환이 가능한지 알아보는 것이고
만약 RangedAttackSO로 형변환이 가능하다면(원거리 공격이라면) rangedAttackSO 의 값이
null이 아니므로 밑에 코드를 작성하더라도 실행이 가능하게 됩니다. (아니라면 return에 의해 종료됨)
'자료 관리' 카테고리의 다른 글
Rigidbody - ForceMode (1) | 2024.10.22 |
---|---|
유니티 인풋 필드(Input Field) (1) | 2024.10.12 |
델리게이트, Event (0) | 2024.10.07 |
Send Messages (0) | 2024.10.07 |
(Unity 2D) 기본 컴포넌트 (0) | 2024.10.06 |