본문 바로가기
개발/Unity

Unity) Missing Component 체크하기

by 테샤르 2024. 12. 9.

 Missing Component 체크하기

작업을 하다보면 예기지 못하게 속성이 Missing으로 링크가 정상적이지 않는 경우가 생긴다.

Missing으로 표시가되는건 .meta 가 변경이되어서 읽을수 없는 경우

혹은 GUI가 변경이 되는 경우

이전에 사용된 Asset이 삭제,혹은 이동이 되어서 연결이 끊어진 경우 다양하다.

반응형

 

 

 < Hierarchy 에서 경고 표시 >

'console.warnicon' 아이콘으로 노출



< Script Code >

var count = Utill.FindMissingReferences(_gameObject);
if (count > 0)
{
    Debug.LogWarning($"Missing in Component :: {_gameObject.name} : {count}");
}
public static int FindMissingReferences(GameObject go)
{
	var count = 0;
	var components = go.GetComponents<Component>();

	for (var j = 0; j < components.Length; j++)
	{
		var c = components[j];
		if (!c)
		{
			Utill.ShowLogError($"Missing Component in GameObject: {go.name} go");
			count++;
			continue;
		}

		var so = new SerializedObject(c);
		var sp = so.GetIterator();

		while (sp.NextVisible(true))
		{
			if (sp.propertyType == SerializedPropertyType.ObjectReference)
			{
				if (sp.objectReferenceValue == null
				 && sp.objectReferenceInstanceIDValue != 0)
				{
					count++;
				}
			}
		}
	}

	return count;
}

 

 

unity-missing-references-finder : [링크]

 

unity-missing-references-finder/Editor/MissingReferencesFinder.cs at master · edcasillas/unity-missing-references-finder

A tool to find missing references in Unity. Contribute to edcasillas/unity-missing-references-finder development by creating an account on GitHub.

github.com

 

★★★★

 

반응형

댓글