2016-12-31 1 views
0

inspector에 채워야하는 공용 배열이 있습니다. 배열이 비어있는 경우 무언가를하고 싶습니다.inspector의 배열이 비어 있는지 확인하십시오.

void CheckArray() 
    { 
     if (objects == null) // this doesn't work 
     { 
      Debug.Log("Empty!"); 
     } 
     else 
     { 
      Debug.Log("Not Empty"); // this gets logged out 
     } 
    } 
+0

'objects.Length'가'0 '일 때 디버그 로그에서 예상되는 결과는 무엇입니까? –

답변

3

if (objects.Length < 0)이 귀하의 경우 : 그 배열이 작동하지 않습니다 또한 내가 다른 뭔가를 시도, "크기 = 0"

public GameObject[] objects; 

    void CheckArray() 
    { 
     if (objects.Length < 0) // this doesn't work 
     { 
      Debug.Log("Empty!"); 
     } 
     else 
     { 
      Debug.Log("Not Empty"); // this gets logged out 
     } 
    } 

위의 작동하지 않는 관리자에서 비어 있지만, 잘못된.

어레이가 비어있는 경우 일반적으로 0입니다. 이 0 때 당신이 체크되기 때문에 배열의 길이가 대신 배열 길이 인 경우의 0에 동일 적은 0보다 경우, if (objects.Length < 0)

가되어야한다 .. 사실이 없을 것 if (objects.Length == 0) 또는 if (objects.Length <= 0)

편집 :

이 기능이 작동하지만 나에게 이해가되지 않습니다. 왜냐하면 개체를 추가하고 "objects [0]"을 확인하면 해당 개체가 반환됩니다. 즉, 배열에 1 개체가 포함되어 있기 때문입니다. 색인 0에서 편집되었지만 동일한 시간의 "길이"가 0임을 의미합니다.

요소가 있습니다. 내가 비어있는 말은 편집자가 인 크기를 설정하지 않는다는 의미였습니다. objects은 공용 변수이므로 Editor는 기본값을 0으로 지정합니다. 그 0 내가 빈 배열이라고 할 때 의미했던 것입니다. Debug.Log(objects.Length);0을 출력합니다.

빈 배열 :

enter image description here

비어 있지 않은 배열 :

이때

enter image description here

, Debug.Log(objects.Length);는 심지어 요소 1null 또는 아무것도 할당되지만 3 인쇄해야 그것에. objects.Length은 항상 편집기에서 설정된 크기와 같습니다. 각 개별 요소가 null 인 경우

GameObject camera = objects[0]; 
GameObject someObj = objects[1]; //ELEMENT IS NULL 
GameObject dLight = objects[2]; 

확인하고 싶으십니까?

for (int i = 0; i < objects.Length; i++) 
{ 
    if (objects[i] == null) 
    { 
     Debug.Log("Empty!: " + i); 
    } 
    else 
    { 
     Debug.Log("Not Empty: " + i); 
    } 
} 
+0

좋아,하지만이게 나에게 어떤 이해가되지 않는다. 왜냐하면 나는 객체를 추가하고 "objects [0]"을 검사 할 때 그 객체를 반환한다. 왜냐하면 객체가 1 인 배열은 0으로 색인 될 것이기 때문이다. 동시에 "길이"가 0이면 비어 있음을 의미합니까?! – Abdou023

+0

답변에 대한 수정. 'objects.Length'는 무언가가 슬롯에 꽂혀 있는지 여부에 관계없이 항상 에디터에 설정된 배열 크기입니다. 아마 너 혼란 스러울거야. – Programmer

+1

좋아, 이제 훨씬 더 명확 해. 고마워. – Abdou023

관련 문제