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