본문 바로가기

전체 글

(18)
C#에서 데이터를 압축하는 코드 유니티로 게임을 만지다 보면 데이터를 직접 압축할 일이 종종 생긴다. 특히 서버와 큰 데이터를 주고받거나 서버에서 굳이 열어보지 않을 데이터를 수집하는 등의 작업에서 압축을 하면 효과를 볼 때가 있다. 아래는 문자열을 압축하는 간단한 코드이다. 유니티서 사용할 경우 동기 버전으로 변형하거나 Task 대신 UniTask 등으로 변형해서 사용할 수 있다. brotli compression in C# brotli compression in C#. GitHub Gist: instantly share code, notes, and snippets. gist.github.com using System.IO; using System.IO.Compression; using System.Text; using System..
C#의 확장 메서드는 언제 사용하면 좋을까? 확장 메서드가 뭔가요? 확장 메서드는 C#의 기능으로, 어떤 클래스에 외부에서 메서드를 정의해서 추가하는 것이다. 확장 메서드는 다음과 같이 정의된다. SomeClass someClass = new SomeClass(); someClass.ExtensionMethod(42);// someClass.A = 42 class SomeClass { public int A; } static class SomeClassExtension { public static void ExtensionMethod(this SomeClass s, int a) { s.A = a } } 정적 클래스에 첫 번째 매개변수를 this로 선언할 것 이렇게 하면 첫 번째 매개변수로 지정한 클래스에 원래 그런 이름의 메서드가 있었던 것 처럼 ..
코루틴 여러개가 모두 완료될때까지 대기하는 코드 언제 끝날 지 모르는 코루틴 여러개를 동시에 실행하되, 모든 코루틴이 끝날때까지 기다리는 기능이 필요해서 만들어 보았다. 개념으론 Task.WhenAll과 동일한데, Task와 달리 코루틴 여러개를 기다리는 기능은 유니티가 기본으로 제공해주지 않는다. . WaitForCoroutines WaitForCoroutines. GitHub Gist: instantly share code, notes, and snippets. gist.github.com using System.Collections; using UnityEngine; public class WaitForCoroutines : CustomYieldInstruction { public override bool keepWaiting => _remain..