List
InstantTrackableBehaviour Object Destroy
Posted Date: 2019-08-15 7:04     Edited Date: 2019-08-16 1:36     Writer: inactive

유니티에서 InstantTrackableBehaviour를 

    

private List<InstantTrackableBehaviour> instantTrackables = new List<InstantTrackableBehaviour>();

private InstantTrackableBehaviour pannel = null; 이렇게 선언하여

pannel = Resources.Load<InstantTrackableBehaviour>("pannel"); 이렇게 받아들이고

 

temp = Instantiate<InstantTrackableBehaviour>(pannel);

instantTrackables.Add(temp); 이렇게 생성을 합니다.

 

객체를 지우려 할때,

InstantTrackableBehaviour.Destroy(instantTrackables[pannelCnt]); 이렇게 지우려니깐 안 지워지네요

Destroy(instantTrackables[pannelCnt]); 이렇게해도 안 지워지고

어떻게 객체를 삭제할 수 있나요?

 

Posted Date: 2019-08-16 1:23     Edited Date: 2019-08-16 1:29     Writer: inactive

유니티에서 객체 삭제는 Destroy(gameObject) 로 하시면 됩니다. 

선언부

public List AnchorModelList = new List();

구현코드 중 발췌

        for(int i=0; i         {
            AnchorBehaviour deleteAnchor = null;
            if (ExistedAnchor.x == AnchorModelList[i].movePosition.x && ExistedAnchor.y == AnchorModelList[i].movePosition.y && ExistedAnchor.z == AnchorModelList[i].movePosition.z)
            {
                deleteAnchor = AnchorModelList[i];
                AnchorModelList.Remove(AnchorModelList[i]);
            }
            if (deleteAnchor != null)
            {
                deleteAnchor.DestroyAnchorObject();
                break;
            }
        }

 

질문주신 코드와 비슷하게 이전에 구현해두었던 코드입니다. AnchorModelList는 앵커의 객체를 갖고있는 리스트이며, 

deleteAnchor는 앵커를 가리키기 위한 임시 포인터 정도로 사용합니다. 

해당 객체를 삭제하는 경우에 AnchorModelList에서 item을 먼저 지우고 해당 객체를 파괴해주시면 됩니다.

DestroyAnchorObject(); 함수의 원형은

    public void DestroyAnchorObject()
    {
        Destroy(gameObject);
    }

유니티에서 객체를 파괴하기 위해 gameObject라는 키워드를 사용합니다.

그리고 해당 질문은 유니티 객체파괴방법에 대한 질문이며,

SDK 사용법과 관련이 없으므로 추후에는 유니티 커뮤니티에 질문해주면 더 좋은 답변을 받을 수 있을 것입니다.

감사합니다. 

 

Leo

Maxst Support Team