강의

멘토링

로드맵

Inflearn brand logo image

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

양승근님의 프로필 이미지
양승근

작성한 질문수

[Unity6] 나만의 서바이벌 게임 만들기

인터렉티브 키

인터렉티브 키 24:14 Destory 질문

해결된 질문

작성

·

139

·

수정됨

0

질문1.

foreach(var iconEntry in activeIcons)

{

if (!currentObjects.Contains(iconEntry.Key))

{

iconEntry.Value.GetComponent<UIAnimationHandler>().AnimationChange("OUT");

Destroy(iconEntry.Value);

toRemove.Add(iconEntry.Key);

}

}

이 코드에서 파괴명령이 있어서 또다른 파과명령은 안 내려도 되지 않나요? 저는 멀어지면 아이콘이 잘 파괴되서 여줘봅니다. ->해결(Destory옮긴 건을 못 봤네요. )

 

질문2.

foreach(Collider obj in nearbyObjects)

{

Transform targetTransform = obj.transform;

float distance = Vector3.Distance(transform.position, targetTransform.position);

if(distance <= activationDistance)

{

ShowIcon(targetTransform);

currentObjects.Add(targetTransform);

}

}

제가 이해하기에는 currentObjects목록에는 항상 실시간으로 부딪힌 collider들의 transform만 가질 수 있도록 update가 돼야 작동하는 게 맞는 것 같은데요. 추가하는 코드만 있는데 갱신이 되려면 거리를 충족시키지 못하면 이미 있는 transform들을 삭제하는 코드가 있어야 맞는 거 아닌지 의문이 들어요. -> HashSet<Transform> currentObjects = new HashSet<Transform>(); 이부분에서 계속 초기화가 된다고 생각하면 될까요?

 

 

답변 1

0

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

안녕하세요, 답변이 늦어서 죄송합니다. 분명 답변을 드렸다고 생각하였는데 인프런에 글이 안 올라가있었네요 ㅠㅠ
말씀주신 내용들은 정확하게 잘 이해해주셨습니다.

HasetSet을 다시 new로 초기화시키면서 새로운 HashSet을 만드니 초기화가 진행되면서 굳이 삭제코드를 사용하지 않았습니다 🙂

양승근님의 프로필 이미지
양승근

작성한 질문수

질문하기