C# 썸네일형 리스트형 [C#] Unity 버튼 컴포넌트에 버튼 클릭 사운드 삽입하기 - 잘하게 되 준비물- 사운드 파일(AudioSource)- Hierarchy 창에 존재하는 게임오브젝트(사운드가 필요한 곳)- 별도의 게임오브젝트 왜 저것만 빨간색인가요?왜냐하면 저 요소가 일반적으로 사람들이 실수하는 부분이기 때문이다.(나도 그랬고, 다들 그런 것 같아 보이고, 타 개발 블로그에서도 그럽니다. ㅜㅜ) 다른 작업에 비하면 소리 넣는 작업은 대빵 쉬워 보이는데정작 여기서도 막히는 나 자신을 발견하는 것이란...! 꼭 버튼 클릭 사운드가 아니어도 된다.배경음악(bgm)이든 뭐든 좋다. 이렇게 본인이 사용하려는 오디오 소스파일을 프로젝트 폴더에 넣는다.나는 유니티 에셋스토어에서 무료 에셋을 임포트했다.혹시 임포트하는 방법을 모르는 분이 계신다면 댓글 주세요. 5분 안에 설명해 드립니다.오디오 믹싱.. 더보기 [C#] Unity 에러 해결: TLS Allocator ALLOC_TEMP_TLS, underlying allocator ALLOC_TEMP_MAIN has unfreed allocations, size 37 에러 발생:유니티에서 새로운 프로젝트 생성 버튼 클릭 후, 비어 있는 새로운 프로젝트 작업창에서 에러 발생 에러 표시:TLS Allocator ALLOC_TEMP_TLS, underlying allocator ALLOC_TEMP_MAIN has unfreed allocations, size 37 해결 방법:작업창 내 메뉴 바 - Assets - Reimport All 해당 에러는 프로젝트 빌드 시 간혹 발생하는 유니티 자체 버그라고 한다.이전에 생성한 빌드 폴더를 삭제한 후 재생성하거나,지금처럼 바로 reimport 버튼을 눌러주면 된다. 유니티 디스커션 페이지에서도 이와 관련된 에러에 대해 설명하고 있다.https://discussions.unity.com/t/tls-allocator-alloc_.. 더보기 [C#] Network Programming - Async, Callback, Listener, Session 이전과 다른 점은서버에서 클라이언트의 요청을 단방향으로 처리하던 방식을(원래 이건 야매 방식이다)Listener.cs 클래스를 별개로 관리하여,SocketAsyncEventArgs() 함수를 통해 비동기 방식으로 요청을 처리하는 것이다. 또한 Session.cs 클래스를 추가하여ServerCore.cs에 모두 뭉쳐 있던 통신 코드를 분산했다. ▼ ServerCore.csusing System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Threading.Tasks;namespace Se.. 더보기 [C#] Network Programming - Socket Programming(Intro) 네트워크 프로그래밍의 시스템은 식당 운영 방식과 비슷하다. 손님과 식당의 관점으로 나누면 손님1) 핸드폰을 준비한다.2) 식당 번호로 입장을 문의한다.휴대폰을 통해 대리인 휴대폰과 통화가 가능하다. 식당1) 문지기를 고용한다.2) 문지기에게 식당의 정보를 교육시킨다.3) 영업을 시작한다.4) 손님을 안내한다.손님 대리인을 통해 손님과 대화가 가능하다. 이를 클라이언트와 서버 관점으로 생각하면 다음과 같다. Client1) 소켓을 준비한다.2) 서버 주소로 Connect한다.소켓을 통해 Session 소켓과 패킷 송수신이 가능하다. Server1) Listner 소켓(단방향)을 준비한다.2) Bind한다. (=서버 주소 및 Port를 소켓에 연동한다.)3) Listen한다.4) Accept한다.클라이.. 더보기 [C#] Network Programming - Communication Model 한 컴퓨터에서 다른 컴퓨터로 "Hello World!"를 전송하기 위해네트워크 상에서는 어떤 과정을 거칠까? 네트워크 통신은 택배 배송 시스템과 유사하다. 다음과 같은 정보로 택배를 배송한다고 가정하자From. A아파트 201호To. B아파트 101호 택배를 배송하는 방법을 다음과 같이 이루어진다.상품 - 배송 정책 - 최종 주소 - 단지 경로 - 택배 운송 A아파트 201호 - A아파트 경비실 - 택배 배송센터 - B아파트 경비실 - B아파트 101호 네트워크 통신도 이와 비슷하게 운영된다. TCP/IP 모델: 어플리케이션 - 트랜스포트 - 네트워크 - 데이터 링크 - 피지컬 A아파트 201호의 관점에서 보았을 때B아파트 101호까지의 택배 배송 방법은네트워크 통신에서의 5가지 계층이 왼쪽.. 더보기 [C#] Multi-threading Programming - Thread Local Storage(TLS) using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ServerCore{ class Program { //TLS static object _lock = new object(); static ThreadLocal ThreadName = new ThreadLocal(); //static String ThreadName으로 선언할 경우, ThreadName.Value는 모두 같은 값이 나옴. //ThreadLocal: T.. 더보기 [C#] Multi-threading Programming - Memory Barrier, DeadLock using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ServerCore{ class GameManager { static object _lock = new object(); public static void Test() { lock(_lock) { UserManager.UserManager_TestForDeadLock(); } } public s.. 더보기 이전 1 다음