1인 개발 게임 (Unity)/UNITY

[Unity] 비활성화된 프리팹 스크립트로 활성화 시키기

Z46 2025. 5. 23. 20:34

비활성화되어있는 게임 오브젝트는 find랑 findtag로 못찾습니다.

 

특히 프리팹처럼 동적으로 생성이 되면... 인스펙터에 할당시키는 방식으로도 못찾는데요! 

 

그럼 어떻게 찾느냐!!!! 헤매고 헤매다가 알게 된 사실 

 

resource 폴더에 두고, resource 폴더에 있는 프리팹 중, 히어라키에 있는 애들만 검색하게 시키면 됩니다! 

 

 

private void FindTargetObject()
{
    /
    }

    // 비활성화된 오브젝트 포함하여 씬의 모든 GameObject 검색
    GameObject[] allObjects = Resources.FindObjectsOfTypeAll<GameObject>();
    
    foreach (GameObject obj in allObjects)
    {
        // 씬에 있는 오브젝트만 필터링 (프리팹/에셋 제외)
        if (obj.scene.name == null || obj.hideFlags != HideFlags.None) continue;
        
        // 이름으로 찾기
        if (!string.IsNullOrEmpty(targetObjectName) && obj.name == targetObjectName)
        {
            targetObject = obj;
            return;
        }
        
        // 태그로 찾기
        if (!string.IsNullOrEmpty(targetTag) && obj.CompareTag(targetTag))
        {
            targetObject = obj;
            return;
        }
    }
}

 

코드는 이렇게 적으면 됩니다 끝~~ 휴 

비활성화된 프리팹 스크립트로 활성화 시키는 게 뭐라고 진짜 계속 시간을 썼네요!!

여러분은 비활성화된 프리팹 스크립트로 활성화 시키는 거에 시간 쓰지마세요

 

unity 비활성화된 프리팹 스크립트로 활성화 시키기 이상 끝 ! !!!!!!