Projectile이 _lifeTime뒤에 사라지지 않는데 어떻게 처리하면 좋을까요...?
555
작성한 질문수 23
게임을 실행했을 때, ProjectileController의 _lifeTime(10초) 뒤에 투사체가 없어지지 않아서 SkillController에서 Despawn 하는 부분에 breakpoint를 잡고 실행해봤습니다.
확인해보니 ObjectManager에서 type이 아래 사진처럼 SkillController로 잡히더라구요.
그래서 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 라서 저 조건에도 맞지 않더라구요ㅠㅠ 어떻게 고칠지 감이 안잡혀서 질문 드립니다!
답변 1
1
코루틴까지 갈 필요도 없이, 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





