본문 바로가기
728x90

유니티/기초27

유니티 코드 디버깅 (Debugging) 1. 문제 해결 문제 해결에 있어, 에러가 존재하는 스크립트 등에 접근하여 소스 코드를 수정한다. 간단한 수정만으로 대부분의 문제는 쉽게 해결이 가능하다. 하지만 프로그램이 복잡하고 커질수록 문제를 발견하고, 해결하는 게 쉽지 않은 경우들이 있다. 유니티에서 프로그램을 개발할 때, 게임 로직 등의 소스 코드가 잘 작동하는지 확인하는 방법은 프로그램을 에디터 상에서 실행( 게임 플레이 )을 해보면 가능하다. 만약 에러가 존재한다면, 유니티는 해당 에러를 콘솔 창을 통해 알려준다. 개발자는 문제가 되는 부분을 발견하고, 문제를 해결한다.  2. Unity Debug 실행하면 정상적으로 작동하는데, 의도치 않은 결과가 발생하는 경우도 있다. 이러한 문제는 콘솔 창을 통해서 확인되지 않으며, 직접 개발자가 그와.. 2021. 1. 16.
유니티 Invoke 1. Invoke() 이전 글에서는 시간의 경과에 따른 절차적 단계를 수행하는 로직을 구현하는 데 사용되는 함수로 Update 함수들과 Coroutine을 언급하였다. 이 함수들에 시간을 지연시키는 로직을 구현할 수 있다. 이러한 지연시키는 로직을 간단하게 구현한 함수가 Invoke() 함수이다. Invoke() 함수는 지정 시간 이후에 대상 함수를 호출한다. 또한, 일정 시간 후에 반복적으로 해당 함수를 호출하도록 구현한 InvokeRepeating() 함수와 같은 추가적인 함수들을 제공한다. Invoke(string methodName, float delayTime) InvokeRepeating(string methodName, float delayTime, float repeatRateTime ) .. 2020. 12. 1.
유니티 코루틴(Coroutine) 과 IEnumerator 1. 코루틴 (Coroutine) 코루틴은 시간의 경과에 따른 절차적 단계를 수행하는 로직을 구현하는 데 사용되는 함수이다. 시간의 경과에 따른 절차적 단계에 대한 로직을 구현하는 것은 Update() 함수들에서도 가능하다. 매 프레임마다 호출되는 로직은 Update()에서 구현하면 된다. 하지만 초당 호출이나, 매 프레임마다 호출이 필요하지 않은 부분을 매 프레임마다 호출하는 것은 바람직한 로직이 아니다. 코루틴은 함수를 호출한다. 함수는 한 프레임에 호출되어 완료가 된다. 이에 IEnumerator 형식을 반환 값으로 가지는 함수를 사용한다. IEnumerator는 함수 내부에 실행을 중지하고, 다음 프레임에서 실행을 재개할 수 있는 yield return 구문을 사용한다. 2. yield retur.. 2020. 11. 30.
유니티 데이터 저장 및 불러오기 (PlayerPrefs) 1. PlayerPrefs 프로그램의 개발에 있어서, 데이터는 가장 중요한 요소이다. 데이터는 지속적으로 저장되어, 캐릭터의 레벨과 같은 상태, 획득한 아이템 등은 영구적인 보관이 요구된다. 온라인 게임의 경우 대부분의 데이터는 서버에 저장된다. 이는 위조, 변조를 방지하는데 유리하며, 관리하기에 용이하다. 하지만 모든 데이터를 서버에 저장하는 것은, 지속적으로 클라이언트와 서버 간의 통신이 발생한다는 것을 의미하며, 이는 서버의 부담을 가중시킨다. 따라서, 중요하지 않은 데이터는 직접 클라이언트에 저장하고 관리한다. 중요하지 않은 데이터로는 음량 조절 값 같은 옵션 설정에 사용되는 데이터들을 예로 들 수 있다. 유니티는 데이터를 저장하기 위한 ScriptableObject, PlayerPrefs, Js.. 2020. 11. 29.
728x90