inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Projectile 쏘기

Projectile이 _lifeTime뒤에 사라지지 않는데 어떻게 처리하면 좋을까요...?

555

박준영

작성한 질문수 23

0

게임을 실행했을 때, ProjectileController의 _lifeTime(10초) 뒤에 투사체가 없어지지 않아서 SkillController에서 Despawn 하는 부분에 breakpoint를 잡고 실행해봤습니다.

확인해보니 ObjectManager에서 type이 아래 사진처럼 SkillController로 잡히더라구요.tempsnip.png그래서 else if (typeof(T).IsSubclassOf(typeof(SkillController))) { ... }조건문에 들어가지 않고 Despawn 함수가 끝나는거 같은데 어떻게 수정하면 좋을까요...?

처음엔 SkillController에서 CoDestroy함수를 아래와 같이 바꿔볼까 했는데

IEnumerator CoDestroy(float delaySeconds)
{
    yield return new WaitForSeconds(delaySeconds);
    if (this.IsValid())
    {
        Managers.Object.Despawn(this as ProjectileController);
    }
}

나중에 n초 뒤에 사라지는 장판형 스킬을 관리하는 다른 Controller를 만들어야 한다고 한다면 위와 같은 코드처럼 강제로 캐스팅 하면 안될거같고,

ObjectManager의 Despawn 함수에

else if (type == typeof(ProjectileController))
{
    Projectiles.Remove(obj as ProjectileController);
    Managers.Resource.Destroy(obj.gameObject);
}

위와 같은 코드를 추가한다고 해도 어짜피 type == SkillController 라서 저 조건에도 맞지 않더라구요ㅠㅠ 어떻게 고칠지 감이 안잡혀서 질문 드립니다!

C# unity object-pooling

답변 1

1

Rookiss

코루틴까지 갈 필요도 없이, Object.Destroy에 시간 넣는 버전이 있습니다.
그리고 매니저를 통해서 할 땐, 정말 아주 다양한 방법이 있는데요.
type을 사용하는 방법 말고도,
enum 으로 구분을 해줄 수 있는 타입을 최상위 클래스에다 넣어도 되고요.
수단과 방법을 가리지 않고(?) 다양하게 응용해보시기 바랍니다.

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

0

85

1

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

0

151

2

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

0

66

1

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

0

87

1

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

0

118

1

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

0

124

1

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

0

170

2

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

0

115

1

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

0

170

1

EquipmentData 관련해서 질문드립니다

0

118

1

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

0

172

2

MonsterControllelr 에서 State Dead 사용

0

109

1

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

0

241

2

Instantiate 관련 질문 드립니다

0

159

1

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

0

607

2

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

0

183

1

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

1

346

1

Coroutine과 uniTask 질문드립니다.

0

241

1

ResourceManager 메서드 역할

0

222

1

스프라이트 자료

1

183

1

xml 에

0

272

2

UI 리소스 사용문의

0

273

1

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

0

601

2

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

0

333

1