UGUI에서는 Button 컴포넌트에 존재한다.


Button 컴포넌트를 추가하면  interactable라는 속성이 추가되어 있다.


이것은 기본적으로 버튼이 클릭될 수 있도록 미리 체크해서 설정해놓은 것이다.


이 체크를 해제하면, 버튼을 클릭할 수 없게 된다.


이것을 스크립트 코드에서 작성하려면, 


버튼 오브젝트 객체.interactable 로 쉽게 할 수 있다.


NGUI에서는 이 interactable라는 용어가 없어 찾았더니.


isEnabled라는 것이 존재한다.


버튼 오브젝트 객체.isEnabled으로 사용할 수 있으며 false일 경우 비활성화, true일 경우 활성화가 된다.


이렇게


UGUI에서, NGUI에서의 버튼 비활성화하는 방법에 대해 알아보았다.



Posted by sungho88
,

애니메이션 클립은 애니메이션에서 가장 작은 단위로써, 걷기 / 뛰기/ 숨쉬기 등 동작 하나하나를 나타내는 단위이다.


이것은 Animation을 분할해놓았을 경우 Animation 컴포넌트를 추가하게 되면 기본적으로 목록이 있다.


Animations라는 속성이 있고, 그것을 눌러보면 배열로 이루어진것을 볼 수 있다(기본은 size 0)


이 Animation에 Animations 배열 항목을 빼보는 방법은 다음과 같다.


public GameObject character;
Animation anim = character.GetComponent<Animation>();
        
foreach (AnimationState state in anim)
{
Debug.Log(state.name);
}



이렇게 하면,  anim안에 AnimationState 형의 값을 모두 가져와 Debug.Log에 이름을 출력한다.


만약, 이 이름을 전부 저장해서 사용하고 싶다면, string 배열에 저장을 해야할 것이다.


왜냐하면, 애니메이션을 실행하는 문장은 


        anim.Play("Death");


와 같이 Play 함수 뒤에 string 형을 매개변수로 적어야 하기 때문이다.


foreach()문을 어떻게 for문으로 변경해야 하는지 많이 검색을 해봤고, 시도를 해봤다.


그렇지만 실패했고, foreach문에서 어떻게 반복되는 횟수 즉, index 값을 찾을까를 알아봤다.


그 결과, index를 외부에 변수로 선언하고, foreach()문 앞에 index++;으로 증가를 시키면 되는 간단한 것이었다.


따라서, string 배열 안에 애니메이션 클립의 이름을 넣는 코드는 다음과 같다.


        internal int index;        
foreach (AnimationState state in anim)
{
            animArray[index] = state.name;
Debug.Log(state.name);
            index++;
}


이렇게 하면 , foreach()에서 몇 번 째 요소인지 for문에서 i값으로 사용할 수 있다.


Posted by sungho88
,

Scene 'Scene_Play' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.

To add a scene to the build settings use the menu File->Build Settings...

UnityEngine.SceneManagement.SceneManager:LoadScene(String)

Source_Title:Press_Play() (at Assets/Scripts/Source_Title.cs:21)

UnityEngine.EventSystems.EventSystem:Update()


이렇게 나올 때가 있다.


검색을 해보니 다음과 같이 해결하면 된다.


해결 방법


씬을 따로 생성할 경우 본인은 새롭게 만들었지만,  유니에서는 아직 Scene에 대한 정보를 갖고 있지 않기 때문이다.


따라서 유니티에 명시해주어야 한다.


위 에러에서도 친절히 설명하고 있다.


File - Build Settings에 가서 씬을 추가하라고...


하는 방법은 위 사이트에 들어가서 해결하자.



Posted by sungho88
,