본문 바로가기
Unity/Unity 사용 Tip

유니티 <스크립트 On / Off > 기능 작성

by 민트코코넛 2021. 4. 29.
728x90
반응형

 Unity로 여러가지 기능을 분할해서 만들고, 여러 오브젝트에 분산해서 적용을 시켜놓은 후, 최적화 등의 사유로 인해서, 모든 오브젝트와 스크립트 등을 메모리에 한 번에 올리는 것이 아닌, 필요할 때만 불러서 사용하고 싶은 경우가 있다.

 이 때, 사용하는 방법은, SetActive(true) or SetActive(false) 와 ~.enabled = true  or ~.enabled = false 인데 이러한 것들이 일반 object와 컴포넌트에만 적용된다고 생각했었다. 

 하지만, 나도 필요에 의해서, 오브젝트는 살려두되, 스크립트만 켜고 끌 수 있다면 좋겠다는 생각을 했고, 검색과 함께 테스트를 해서 찾아내었고, 프로젝트의 안정화에 도움이 되었던 코드를 기록해보려 한다.

 

사용 방법 :

public class A : MonoBehavior
{
	public GameObject Model;		// 스크립트에서 접근해야 하는 외부 오브젝트 선언
    
    public void ModelScriptOn()
    {
    	Model.GetComponent<ModelScript>().enabled = true;		
        // 외부 모델에 적용된 해당 스크립트를 사용한다.
    }
    public void ModelScriptOff()
    {
    	Model.GetComponent<ModelScript>().enabled = false;		
        // 외부 모델에 적용된 해당 스크립트를 사용 중지한다
    }
}

 

 물론, 유니티 에디터 내에서는, inspector 창에서 원하는 것을 끄고 키면서 테스트 해볼 수 있지만, 빌드 이후를 생각했을 때에는, 어떠한 조건에 의거하여 원하는 기능 또는 컴포넌트 들을 끄고 켤 수 있어야 한다.

 그리고, 하나의 오브젝트에 여러가지 스크립트를 적용해두고, 상황에 따라 해당 스크립트들도 사용, 미사용 하면서 조절할 필요성도 있었기에, 이번 글을 작성해 보았다.

 

 위에서 ModelScript 라고 되어 있는 부분에, 각자가 원하는 On/Off용 스크립트의 이름을 적어주면 된다.

728x90