[Unity] Monobehaviour 스크립트의 구동

Learning 

When: 1학년 4월 28일

 

How:

이번에 수업시간에 static을 배우다가 내용에 대해 깊게 파보니 객체지향 프로그래밍은 객체를 만들어야 구동이 될 텐데, 왜 객체를 만들지 않고 클래스만 만들어서 오브젝트에 컴포넌트로 부착하면 구동이 될까? 라는 생각이 들어서 공부를 해보았습니다.

 

Understanding:

일단 답은 MonoBehaviour를 부모로 하고 오브젝트에 부착된 스크립트는 자동으로 객체가 만들어진다는 사실을 알았고, 그렇게 하면 객체마다 다르게 설정할 수 있다는 객체지향 프로그래밍의 장점이 없어지기 때문에 직렬화를 할 수 있게 해서 따로 공간을 만든 다음, 자동으로 객체를 만들 때 그것을 반영하는 방식으로 객체의 다양성을 지킬 수 있습니다.
그리고 static은 자동으로 만들어주는 것이 아니라 클래스 자체에 있는 것입니다. 마지막으로 static은 원래 클래스명.스태틱이름 형식으로 읽거나 호출하지만 그 클래스 안에서는 그냥 변수명으로 사용할 수 있어 조금 헷갈렸습니다.
그리고 static을 클래스 안에서는 클래스명을 생략해도 되지만 그렇게 하지 않는 것이 가독성에서는 좋을 것 같다는 생각도 들었습니다.

 

Result: 유니티에서 만든 스크립트는 자동으로 객체를 만들어주고 직렬화된 변수는 바꾼 그대로 반영됩니다. static은 그 클래스 안에서는 클래스명을 생략할 수 있습니다.