inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

스킬과 맵 개선

ProjectileController로 만든 파이어볼이 삭제가 되지않습니다.

269

ume6514

작성한 질문수 7

0

일단 코드를 따라서 구현하고 코드의 흐름으로도 Projectile script가 붙은 파이어볼이 10초뒤에 자연적으로 소멸해야하는데

소멸이 되지않습니다.

 

코드의 흐름을 보면

PlayerController 에서 StartProjectile함수로 파이어볼을 생성해서 발사

 

ProjectileController에서 Init함수에서 StartDestroy(_lifeTime); 함수로 넘어가서 SkillController에서 구현된 CoDestroy 에서 Managers.Object.Despawn(this)에 의해 소멸되어야하는데 소멸되지않아

 

Despawn 쪽에

T가 SkillController 코드를 추가하니 정상적으로 시간뒤에 파괴되는것을 확인했는데 왜 ProjectileController 가 아닌 SkillConroller에서 파괴되는지 궁금합니다. 브레이크포인트를 잡고 해도 SkillController로 넘어가네요

C# unity object-pooling

답변 1

-1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

ume6514님, 파이어볼의 자동 삭제 기능이 정상적으로 작동하지 않는 문제를 겪고 계시군요.
제공해주신 코드와 설명을 바탕으로, ProjectileController 대신 SkillController에서 파괴되는 원인을 찾기 위해서는 몇 가지를 확인해볼 필요가 있습니다.

  • 먼저, ProjectileControllerInit 함수에서 StartDestroy를 호출하고 있는지 확인하세요. 그리고 StartDestroy 함수 내부에서 CoDestroy 코루틴이 제대로 실행되고 있는지 로깅을 통해 검토해보세요.
  • CoDestroy 코루틴이 정상적으로 일정 시간(_lifeTime) 후에 Managers.Object.Despawn(this)를 호출하여 객체가 소멸되도록 구현되어 있는지 확인하세요.
  • 제공해주신 이미지의 코드에서 else if (type == typeof(ProjectileController)) 조건문 내에서 Projectiles 컬렉션에서 오브젝트를 제대로 제거하고 있는지, 그리고 Managers.Resource.Destroy(obj.gameObject); 호출이 정상적으로 작동하는지 확인이 필요합니다.

브레이크포인트가 SkillController로 넘어간다는 점은, 어딘가에서 SkillController의 게임 오브젝트를 참조하여 그것을 파괴하도록 로직이 짜여있을 가능성이 높습니다. 이는 해당 오브젝트에 대한 참조나 처리 과정에서 의도치 않은 오동작이 발생하고 있을 수 있습니다.

  • StartProjectile 함수에서 생성된 파이어볼(ProjectileController 오브젝트)가 올바르게 참조되고 있는지 확인해보시고,
  • ProjectileControllerSkillController 간의 관계를 잘못 설정하지 않았는지 점검해보세요.

이상의 점검을 통해 문제가 해결되지 않는다면, ProjectileControllerSkillController의 전체 구현 코드를 함께 살펴보아야 할 수 있습니다.

더 깊이 있는 분석이 필요하다면 실제 코드의 전체적인 흐름을 살펴볼 수 있도록 질문에 더 많은 정보를 제공해 주시기 바랍니다.

도움이 필요하시다면 언제든지 추가적인 질문을 남겨주세요.
감사합니다.

Addressables로 등록한 Slice된 Sprite의 하위 Sprite 접근법에 대해 질문드립니다

0

85

1

유니티 데이터 저장객체 ScriptableObject에 대해 의견 여쭤보고 싶습니다

0

143

2

안녕하세요 선생님 공부중에 궁금한게 있어서 질문 드려요

0

65

1

상속 구조에서의 awake흐름 및 init 함수 질문있습니다

0

86

1

젬 스프라이트가 로딩되지 않습니다.

0

116

1

혹시 스프라이트 드래그 앤 드롭으로 애니메이션 생성할 때

0

122

1

init() 2번 실행? 등 스킬 마무리 강의에서 질문 있습니다.

0

169

2

Managers.Object.Player와 Mangers.Game.Player 차이

0

113

1

상업적 출시에 대한 질문입니다.

0

169

1

EquipmentData 관련해서 질문드립니다

0

117

1

Data관리 관련해서 질문드립니다.

0

171

2

MonsterControllelr 에서 State Dead 사용

0

107

1

안드로이드 빌드에서는 LoadAllAsync , LoadAsync 가 동작 하지 않고 있습니다.

0

241

2

Instantiate 관련 질문 드립니다

0

159

1

포트폴리오 문서작성에 있어서 질문드립니다.

0

600

2

UI 연동방식에 대해서 질문드립니다.

0

182

1

인디게임출시경험이 중요할까요?

1

346

1

Coroutine과 uniTask 질문드립니다.

0

240

1

ResourceManager 메서드 역할

0

221

1

스프라이트 자료

1

181

1

xml 에

0

269

2

UI 리소스 사용문의

0

270

1

폴더 이름 제일 앞에 @를 붙이는 이유가 궁굼해요

0

595

2

3.:43 초 때부터 잘 안되는 것 같습니다...

0

329

1