티스토리 뷰
이번에 코드를 최적화하는 과정에서 PlayerPrefs를 사용한 부분이 있어 가져와 보았다.
PlayerPrefs는 이전 글에서 이미 다루었기 때문에, 설명을 따로 하지 않고 바로 본론으로 넘어가도록 하겠다.
Notice코드의 전문이다. 해당 코드는 DontDestroy 오브젝트인 System에 상속된 Notice오브젝트에서 사용하는 코드로, TextMeshPro 오브젝트인 Notice를 사용해 화면 중앙 상단에 특정 메시지를 출력하는 역할을 한다.
이런 방식으로 코드를 작성한다고 해서 동작하는데 문제가 발생하지는 않는다. 하지만 여러 오브젝트에서 상호작용을 하고 텍스트를 출력할 때마다 매번 Notice 오브젝트를 찾아서 message함수를 호출해야만 하는 번거로움이 있을 뿐더러,
함수가 외부에서 호출이 가능하려면 반드시 public 혹은 protected의 접근 제한자를 가져야 하기 때문에 보안 문제에서도 취약해진다.
최적화 방법은 간단하다. 원하는 메시지를 PlayerPrefs에 입력하고, Notice에서는 Update함수로 해당 값이 변경됨을 감지할 때마다 텍스트를 출력해 주면 된다.
변경된 코드의 모습이다. PlayerPrefs 클래스의 Notice 변수가 변경되면 해당 텍스트를 출력하고 변수값을 초기값을 되돌린다.
더이상 함수 호출을 하지 않고 메시지 출력이 가능한 모습
개발 초기에 작성한 부분이다 보니 나중에 Notice가 여러 곳에서 사용될 것을 고려하지 않고 작성해 발생한 문제이다.
코드를 작성할 때 나중에 어떻게 쓰일지를 고려하면서 최적화된 코드를 작성하는 능력을 기르면 좋을 것 같다.
'프로그래밍 문제풀이 > 프로그래밍 공부' 카테고리의 다른 글
영단어 공부 프로그램 (0) | 2023.06.02 |
---|---|
스크립트로 빙판길 구현하기 (0) | 2023.05.30 |
Inspector를 사용한 스크립트 간소화 (0) | 2023.04.26 |
PlayerPrefs (0) | 2023.04.21 |
Tilemap(SwapTile, SetTile) (2) | 2023.04.17 |