인프런 커뮤니티 질문&답변

루테닛댄님의 프로필 이미지
루테닛댄

작성한 질문수

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + T2)

Area Of Effect

AttackBuff.ClearEffect() 메서드 문의

작성

·

230

·

수정됨

0

버프류 스킬 AttackBuff.ClearEffect() 메서드 관련 궁금한 점이 있습니다.

 

public override bool ClearEffect(EEffectClearType clearType)
{
    if(base.ClearEffect(clearType) == true)
        RemoveModifier(Owner.Atk, this);

    return true;
}

 

여기서 base.ClearFffect()

ObjectManager.Despawn()을 호출하고, 이건 또

ResourceManager.Destroy()를 호출함으로써

AttackBuff가 붙어있는 EffectBase 프리팹을 날려버리면서 true를 반환하는걸로 이해하는데요,

이 경우 AttackBuff 인스턴스가 날라가게 되는데 그 다음줄 RemoveModifier가 실행되고, 또 자기 자신을 인자로 넘겨줄 수가 있나요?

RemoveModifier(Owner.Atk, this);

 

 

 

 

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

GameObject를 Destroy해도 C++ 처럼 메모리에 바로 날라가는 것은 또 아니라서
그것을 사용하는게 아니라 참조값을 Remove하는 것은 괜찮습니다.
다만 내부에서 무엇인가 사용하면 안 되긴 하니 조금 위험한 것은 맞겠네요.

루테닛댄님의 프로필 이미지
루테닛댄

작성한 질문수

질문하기