Unity/코드 (3) 썸네일형 리스트형 리스트에서 원소를 지우면서 지운 원소를 조작하는 코드 게임 개발을 하다 보면 리스트에서 원소를 지우면서, 동시에 리스트에서 방금 지워진 원소에 대해 어떤 조작을 해야 하는 패턴을 굉장히 흔하게 접하게 된다. 흔한 예를 들면 유닛이 사망하면 유닛을 리스트에서 지우면서 사망한 유닛의 사망 처리를 하는 패턴을 예로 들 수 있다.이런 경우 List.RemoveAll 을 어떻게든 쓰거나 루프를 여러번 도는 식으로 코딩하는 경우를 흔하게 볼 수 있다. 이런 경우에 가장 효율적인 코드는 이미 잘 알려져 있다. for (var i = list.Count - 1; i >= 0; i--){ if (list[i].Removed) { list[i].OnRemove(); list[i] = list[^1]; list.Remove.. 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.. 코루틴 여러개가 모두 완료될때까지 대기하는 코드 언제 끝날 지 모르는 코루틴 여러개를 동시에 실행하되, 모든 코루틴이 끝날때까지 기다리는 기능이 필요해서 만들어 보았다. 개념으론 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.. 이전 1 다음