해결된 질문
작성
·
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
안녕하세요, 답변이 늦어서 죄송합니다. 분명 답변을 드렸다고 생각하였는데 인프런에 글이 안 올라가있었네요 ㅠㅠ
말씀주신 내용들은 정확하게 잘 이해해주셨습니다.
HasetSet을 다시 new로 초기화시키면서 새로운 HashSet을 만드니 초기화가 진행되면서 굳이 삭제코드를 사용하지 않았습니다 🙂