[유니티] 더 나은 코드를 위해, 코드간의 결합도 낮추기
·
Unity
진행중인 한 프로젝트의 개발 규모를 확장하면서, 이전 코드구조를 리팩토링하기로 했다.도중에 전역 인스턴스를 너무 과하게 사용하고 있는것 같다는 생각이 들었다.분명 올바른 사용을 하고 있는 코드들도 있을것이다. 반드시 다른 코드를 참조해야 하는 로직들도 분명 존재하기 때문이다.하지만 분명 불필요한 참조도 있었고, 이를 줄이기 위해 참조 부분 위주로 살펴보며 고찰을 해보았다. 다른 코드 인스턴스를 직접 가져오는 것 자체는 문제가 되지 않는다. 정말 고려해야 하는것은 한 코드가 다른 코드에 '얼마나 많은 영향'을 미치는가이다.간단한 예시를 통해 살펴보자. # CASE 1public class A : MonoBehaviour{ public void DoWork() }public class B : MonoB..
[유니티] 설정창에서 소리 조절 기능 구현하기
·
Unity
게임 설정창에서 슬라이더를 통해 소리를 조절하는 기능을 구현해 보도록 하자.전체 볼륨 뿐만 아니라, 효과음과 배경음 등 사운드 그룹을 나누어 따로 조절할 수도 있다. AudioMixer 세팅하기 프로젝트 창에서 Assets > Create > Audio > AudioMixer를 통해 새로운 AudioMixer를 생성할 수 있다.AudioMixer는 유니티에서 AudioSources에서 생성하는 오디오 시그널을 더 복잡하게 라우팅하고 믹싱하는 AudioSources를 참조할 수 있는 에셋이다. 쉽게 말해서 여러 오디오 소리를 한 곳으로 모아서, 볼륨이나 효과를 한꺼번에 조절해줄 수 있게 해주는 '음향 조절기'이다. AudioSource → 실제로 소리를 재생하는 스피커AudioMixer → 여러 Audio..
[유니티] 비트 플래그(Bit Flag)를 사용한 다중 상태 관리 구현하기
·
Unity
게임을 개발하다 보면 하나의 공격에 여러 속성이 섞이거나, 플레이어가 동시에 여러 버프를 얻는 등 한 객체가 여러 상태를 동시에 지니는 상황이 자주 발생한다. 이때 각 상태를 개별 변수로 관리하면, 상태가 중첩될 때마다 if문으로 일일이 검사해야 하고, 새로운 상태가 추가될 때마다 관련된 조건문과 변수도 함께 늘어나 코드가 복잡해진다. 결국 유지보수가 어려워지고, 시스템이 커질수록 관리 비용이 기하급수적으로 증가하게 된다. 이때 다중 상태 관리를 효율적으로 도와주는 개념이 바로 비트 플래그(Bit Flag)이다.비트 플래그(Bit Flag)란? 비트 플래그는 하나의 정수형 변수 안에 여러 개의 상태(ON/OFF)를 이진수의 각 비트 단위로 저장하는 방식이다.즉, 한 비트(0 또는 1)가 하나의 상태를 의..