[Unity] Debug.Log 커스터마이징
·
게임개발/Unity
유니티에서 가장 자주 쓰이는 함수가 뭘까? 개인적으로는 Debug.Log가 아닐까 생각한다.코드가 잘 돌아가는지, 값이 올바른지 등을 확인하기 위해 보통 Debug.Log로 메세지를 출력한다.Debug 종류는 Log, LogWarning, LogError 3가지로 각 상황에 따라 적절하게 사용한다. 그런데 이 Debug.Log에 내가 원하는 방식으로 수정할 수 있으면 좋지 않을까?예를 들어, Debug.Log를 호출한 클래스의 이름을 자동으로 메세지에 넣어 출력하게 해준다거나 Editor에서만 Debug.Log를 호출하도록 바꾸는 등 말이다. 1. 호출한 클래스 출력하기어떤 함수를 호출했을 때 해당 클래스의 이름을 출력하는 방법에는 여러가지가 있다.가장 간단한 방법은 호출하는 함수에서 this.Get..
[Unity] 안쓰는 함수 멋지게 표현하기 (System.Obsolete)
·
게임개발/Unity
Unity 뿐만 아니라 다른 모든 프로그래밍에서 함수나 클래스를 만들었다가 버리는 경우가 흔하다.보통 주석처리 하거나 아예 지워버리긴 하지만, 다른 사람들과 협업할 때 무작정 없애면 혼란이 생길 수가 있다.또한 이전 버전을 사용하는 사람에게 새로운 함수나 클래스로 변경하라는 메세지가 필요할 때도 있다. 이를 위해 Unity에서는 더 이상 사용하지 않는 함수나 클래스에 Obsolete 키워드를 넣어 해당 함수나 클래스가 더 이상 권장되지 않음을 표시할 수 있다. 0. System.ObsoleteObsolete 키워드는 선언 바로 윗 부분에 [System.Obsolete]를 적어 적용할 수 있다. 형태는 총 3가지가 존재한다.[System.Obsolete]: 기본 형태. 해당 메서드나 클래스가 권장되지 않음..
[Unity] NetworkVariable, INetworkSerializable Synchronization Problem
·
게임개발/Unity
유니티에서 넷코드는 멀티플레이 관련 기능을 제공하는 유용한 API다. 하지만, 그만큼 사용하기 어려우며 문제가 생기는 순간 디버깅 지옥이 펼쳐진다. 최근 NewtorkVariable과 INetworkSerializable을 사용해 변수 동기화를 진행하는데, 클라와 서버 간의 데이터가 동기화되지 않는 문제가 발생하였다. NetworkVariable의 ReadPermission을 Owner로 설정하고 NetworkSerialize 인터페이스 함수를 철저히 구현했는데도 도저히 동기화는 되지 않았다.//... in Test.csNetworkVariable testNet = new NetworkVariable(new TestNetClass(), NetworkVariableWritePermission.Everyon..
[Unity] StopCoroutine, 코루틴 중지시키기
·
게임개발/Unity
Unity의 코루틴은 비동기 처리를 위해 자주 사용된다. StartCoroutine을 통해 실행하면 유니티에서 알아서 비동기로 해준다.물론 코루틴은 메인 스레드에서 돌아가며, 멀티 스레딩이 아니라는 점을 유의해야한다. 자세한 내용은 #1, #2StartCoroutine(Susume()); 그런데, 실행한 코루틴을 다시 중지하려면 어떻게 해야할까? 1. StopCoroutine from inside먼저, 코루틴 내부에서 탈출하는 방법이 있다. 코루틴 함수에서 yield break를 하게 되면 함수에서 return하는 것과 같이 바로 빠져나올 수가 있다.IEnumerator CoroutineTest(){ while (true) { yield break; // 코루틴 종료 }}2. St..
[Unity] Button OnClick Event is triggered twice
·
게임개발/Unity
유니티에서 버튼 UI를 쓰면 OnClick 이벤트에 메서드를 할당하여 사용하게 된다. 메서드는 보통 인스펙터 창에서 추가하거나, 혹은 스크립트에서 button.onClick.AddListener()를 사용하여 넣어준다. using System;using UnityEngine;using UnityEngine.UI;public class TestButton: MonoBehaviour{ Button button; void Awake() { button = GetComponent(); button.onClick.AddListener(OnClickButton); } void OnClickButton() { Debug.Log($"Button c..
[Unity] 한글 워들(Korean Wordle) 출시
·
게임제작
해외 유명 퍼즐 게임인 Wordle을 한국어 버전으로 만들어봤습니다1인 제작이며 디자인은 몇몇 분들의 도움을 받아 수정해나갔습니다. 추후 여러 기능들이 업데이트 될 예정입니다. 아직 스토에서 검색이 안되어 아래 링크를 통해 들어가야합니다. 현재 버전: v1.0.1 # 업데이트 내역- v1.0.0한글 워들 출시- v1.0.1버그 및 디자인 수정 https://play.google.com/store/apps/details?id=com.CHS.Korean_Wordle 한글 워들(Korean Wordle) - Google Play 앱해외 유명 Wordle 게임의 한국어 버전입니다.play.google.com 게임 이름: 한글 워들(Korean Wordle)개발 기간: 2~3개월개발 인원: 1명개발 도구: Uni..