inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

싱글톤 패턴 관련 질문드립니다

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

직접 만든 게임을 모바일에서 출시해보고 싶어 유니티 공부를 시작했는데 서적이나 유튜브 강의를 보다보면 거의 싱글톤 패턴을 사용하며 권장하고 있습니다. 여러 커뮤니티에서 싱글톤패턴은 사용하면 안좋은점이 많고 사용하지 말아야 할 문제점 처럼 이야기 하는것을 보게되었는데 실질적으로 사용을 피해야하는 안좋은 코딩 방법인지, 사용한다면 개발하는데 제한이 있는 장르가 생기는지 궁금합니다.

  • unity
  • C#
황라윤 댓글 1 좋아요 1 조회수 376

패킷 관련해서 궁금한점이 있습니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

의도한것은 아니었지만 수업을 따라하다가 서버 솔루션을 작동시키고 나오는 콘솔창에 마우스 커서를 실수로 드래그를 하고 유니티 클라 3개를 서버에 입장시켰었습니다 처음에 왜 안되지? 하며보다가 아 콘솔창 드래그했구나라며 서버솔루션 중지했다 다시 재생을 하였는데 "패킷모아보내기 : N개 " 디버깅메세지가 뜨면서 캐릭터들이 쌓엿던 패킷대로 이동과 행동을 한번에 처리하니 순간이동을 하거나 아주 빠르게 이동하고 다른 플레이어가 볼떄 대각선으로 이동하는거같이 보이고 그랬습니다 비슷한 상황으로 어릴적 온라인 게임을 하다 이런경우를 보곤했었는데 결국 효율을 위해서 패킷을 모아보내기는 해야하지만 이렇게 쌓인 패킷이 많아 한번에 처리를 하려하면 클라유저간 싱크가 안맞는 상황이 벌어지는게 맞을까요? 마찬가지로 락도 잘 걸어야겠네요.. 너무 무섭습니다 서버.. 재밋는데 진짜 어렵기도하고요 ㅋㅋ

  • unity
  • C#
Hustleinmablood김용호 댓글 1 좋아요 0 조회수 269

RegisterAccept() 질문

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

우선 먼저 사과드립니다... 비슷한 질문이 많은데 그 글들을 봐도 이해에 대해 확신이 서지 않아 같은 질문을 또 드리는것 같네요. 의문이 있는 부분은 SocketAsyncEvnetArgs 부분 입니다. 1. RegisterAccept 에서 AcceptAsync로 args를 처리. 2. args안에 EventHandler<T> Completed; 존재 3. args안에 OnCompleted가 존재하고, Accepted되면 OnCompleted가 실행되면서 Completed.Invoke로 OnAcceptCompleted 동작. 비동기로 accept를 처리하고, accept가 완료되면 callback을 통해서 OnAcceptCompleted 함수가 수행된다는 개념은 이해했지만 동작 메커니즘이 정확하게 이해되지 않아 질문드립니다. 아래 사이트를 참고하였을때, OnCompleted에 뭔가 정의가 있어야 함수가 실행이 될텐데요, event - C# 참조 | Microsoft Docs EventHandler<TEventArgs> 대리자 (System) | Microsoft Docs VS2019에서 정의를 타고 올라갔으나....주석 뿐인 정의만 있었습니다. Socket까지도 정의를 타고 올라갔는데 마찬가지로 프로퍼티+주석만 잔뜩있었습니다 ㅠㅠ.... 제가 옳게 이해한 것이 맞을까요?

  • C#
  • unity
  • network
rhodonite 댓글 1 좋아요 0 조회수 276

씬 이동시 fade out in 관련 질문입니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

안녕하세요 씬 이동시 fade out in을 구현하고 싶습니다. 구글링을 통해서 많은 자료를 봤지만 본 강의에서 설계한 Manager 패턴에 적용시키기 어려웠습니다. 가령 버튼을 누르면 fade out in이 동작하거나 monobehavior를 상속받은 별도의 FadeManager를 만드는 등 본 강의와 조금은 이질감이 느껴지는 코드들이었습니다. 기존 틀을 유지한채 fade out in을 적용할 수 있는 방법을 알 수 있을까요? 구글에 떠도는 코드를 따라하려 해도 해당 코드들은 FadeManager의 Child에 검은색 Sprite를 두고 알파값을 변경해가면서 fade in out을 구현했는데 본 강의에서 설계한 대로라면 FadeManager를 생성하고 child를 어떤 방식으로 둬야할 지 모르겠습니다.. 그냥 Manager 밑에 Sprite를 둬도 되는지 의문이 드네요. 가장 좋은 방법이 있을까요?

  • unity
  • C#
댓글 4 좋아요 0 조회수 354

함수를 호출할때 배열형식 인자를 참조가 아닌 값 형식으로 전달하고자 한다면 어떻게 해야할까요?

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

static void WantValue(int[] scores) { // 생략 } static void Main(string[] args) { int[] scores = new int[5] { 1, 2, 3, 4, 5}; WantValue(scores); } 위의 내용에서 WantValue 함수를 호출하면 참조가 전달되는 것으로 알고 있는데요. 근데 만약 참조가 아닌 값 형식으로 전달하려고 한다면 어떤식으로 해야하는지 궁금합니다.

  • 함수
  • 배열
  • C#
Gaia 댓글 1 좋아요 0 조회수 231

애니매이션 질문입니다 (조금 길어요)

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

중간에 듣다가 점프하는 애니매이션을 넣어보고 싶어서 강의 일시정지 해놓고 점프 하는 애니매이션을 혼자 만들어봤는데 조금 이상한? 부분과 이해가 안가는 부분이 많아서 질문드립니다. 일단 점프 Animation은 유니티짱의 JUMP00 을 사용하였습니다. 점프 조건은 스페이스바를 누를 때 작동되게 하였습니다. 또한 유니티 툴에서 Parameters 부분에 float로 jump를 추가하였습니다. (점프 애니매이션을 실행할때 유니티짱의 position 이 변경이 안되는것을 확인하고 진행하였습니다.) Script코드랑 유니티툴 사진 첨부 하겠습니다. 먼저 Define.cs 에 KeyboardEvent enum타입으로 선언 하였습니다.(아직 왜 Define이라는 파일을 만들어서 관리하는지는 정확하게 이해는 안가지만 그런가보다 하고 여기 선언 하였습니다.) 그리고 왜인지는 모르겠지만 그냥 강의한거 따라서 InputManager.cs 에 사진과 같은 코드를 작성하였습니다. 그리고 이해는 아직 못하였지만 마우스 클릭을 할때 OnmouseClicked 를 Start에 만들어 주었기때문에 똑가이 만들고 선언해주었습니다 그리고 유니티 툴의 State 머신입니다. 현재 State 머신에서 WAIT를 눌러보면 WAIT -> RUN에서는 Has Exit Timed이 꺼져있고 WAIT -> JUMP에는 제가 Has Exit Time 을 껏습니다. 그리고 RUN -> WAIT : Has Exit Time OFF 상태이고 RUN -> JUMP : Has Exit Time OFF 상태입니다. 그리고 JUMP -> WAIT : Has Exit Time OFF상태이고 JUMP -> RUN : Has Exit Time ON(체크된상태) 입니다. JUMP -> RUN에서 Has Exit Time 을 꺼버리면 WAIT 애니매이션이 계속 지속이 되고 Has Exit Time 켜주면 다시 애니매이션이 동작합니다. 다만, 여기서 점프를 하고난 후에 잠시 뛰는 애니매이션을 실행하고 다시 WAIT 애니매이션을 실행합니다. 궁금한 질문 입니다. 질문1 : 막연한 질문이지만 왜 점프를 하고난 뒤에 뛰는 애니매이션을 잠깐 실행하고 멈추는 지 모르겠습니다. JUMP, RUN의 Blending부분을 안곂치게 실행을 해보아도 똑같았습니다. 질문2 : PlayerController.cs에서 작성한 void OnKeyBoardPressed(Define.KeyBoardevent evt) { if (_state == PlayerState.Die) return; Animator anim = GetComponent<Animator>(); anim.Play("JUMP"); } 이 함수 없이도 InPutManager.cs 에 if(Input.GetKeyDown(KeyCode.Space) == true) { KeyBoardAction.Invoke(Define.KeyBoardEvent.P_Space); _pressed_space = true; } if(Input.GetKeyUp(KeyCode.Space) == true) { KeyBoardAction.Invoke(Define.KeyBoardEvent.P_Space); _pressed_space = false; } 이 부분과 PlayerController.cs에서 작성한 이부분만 있어도 점프가 되던데 어떠한 식으로 함수를 주고받는 것인지 이해가 안갑니다.. Playercontroller.cs의 Start()함수에서 Managers.Input.KeyBoardAction -= OnKeyBoardPressed; Managers.Input.KeyBoardAction += OnKeyBoardPressed; 이 두줄을 주석처리하거고 실행하면 에러가나서 점프가 안되는데 왜 저런식으로 코드를 짜야 점프가 되는지 모르겠습니다. 질문 3 : Playercontroller.cs의 OnKeyBoardPressed의 인자러(Define.KeyBoardEvent evt) 이런식으로 넘겨 주고 밑에 if문으로 함수를 짯는데 Define.KeyBoardEvent evt 의 의미가 Define.KeyBoardEvent 이녀석이 true라는 말이거나 아니면 뒤에 Define.KeyBoardEvent에서 P_Space를선언 해주었다는 말이랑 같은 말인가요? 질문 4 : Start()에서Managers.Input.MouseAction -= OnMouseClicked; Managers.Input.MouseAction += OnMouseClicked; 이러한 부분이 콜백함수인것은 알겠는데 어떤식으로 호출하고 호출되는지 모르겠습니다.. 질문 5: 학교가 게임만드는 학과인데 이때까지 수업들어왔던 내용들이 이해를 못한 부분들이 많은데 그냥 이대로 수업을 쭉 듣고 혼자 실습하는 형태로 진행하는것이 좋을까요 아니면 이해가 될떄까지 늘어지는게 좋은방법인가요..?? 2학년인데 게임개발 잘하시는 분들보면 현타가 옵니다..ㅠㅠ 질문내용을 이해하기 어려우실 수 있는데 답변드린다면 정말정말 감사하겠습니다. 감사합니다.

  • unity
  • C#
starkshn 댓글 4 좋아요 0 조회수 603

가시성이라는게

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

가시성이라는게 사람?코드?의 가시성이 아니라 메모리간의 가시성이라고 이해하는게 맞나요? 그 직원(메모리)들이 잘 볼수있도록 전광판을 업데이트 하는 메모리들간의 가시성?이 맞나요? 어렵네용ㅎㅎ

  • unity
  • C#
  • network
루라 댓글 2 좋아요 2 조회수 415

이건 컴퓨터 성능 때문일까요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요, 선생님 c# 게임 서버 강의를 수강하다가 선생님과 다르게 작동하는 부분이 있어서 질문드립니다 6번째 강의인 컴파일러 최적화 강의에서 코드를 실행하면 4:25초경에 쓰레드 시작! 쓰레드 종료! Stop 호출 종료 대기중 종료 성공 이 순서대로 선생님은 실행이 되는데요, 저는 쓰레드 시작! Stop 호출 종료 대기중 쓰레드 종료! 종료 성공 순서로 쓰레드 종료!가 더 늦게 뜨네요 강의에서처럼 _stop에 volatile을 붙이면 선생님이랑 같은 값이 나오긴 하는데 컴퓨터 성능 차이 때문일 수 있나요? 코드가 다른 부분은 없습니다. 몇 번이고 확인했어요 감사합니다!

  • C#
  • unity
  • network
potentialk 댓글 1 좋아요 0 조회수 189

Tile collision에 관한 질문입니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

.

  • C#
  • unity
댓글 2 좋아요 0 조회수 320

Lock을 거는 것과 await 키워드를 사용하는 것는 어떤 차이가 있을까요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

제목 그대로 lock과 await의 차이가 궁금합니다. C#에서 제공하는 await 키워드 또한 lock과 비슷한 느낌적인 느낌인데 혹시 차이가 있을까요? lock은 임계구역을 생성해서 보호막을 만드는 느낌이라면 await은 task가 끝날 때까지 잠시 대기 해주는 역할을 하는 것 같은데 먼가 둘의 차이가 정확하게 와닿지가 않아서요! 좀 더 정확하게 잘 이해가 안되는 부분은 "동시 다발적으로 await이 걸려있는 task를 처리한다고 했을 때 어떤 식으로 동작을 할까?"인 것 같아요.

  • network
  • C#
  • unity
차동훈 댓글 1 좋아요 1 조회수 845

c# 스크립트에서 한글 주석을 달면 깨지는 문제

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Unity에서 스크립트를 추가하고 코드를 작성할때, 한글 주석을 작성하고 저장 후 Unity로 돌아오면 한글 주석 부분이 깨져서 나옵니다. 인터넷에 검색해본 결과 스크립트 파일을 메모장으로 열어서 UTP-8로 다시 저장하면 된다고 하여서 시도 해봤더니 한글로 잘 뜨긴 합니다만, 매번 이 방식으로 한글 주석이 달린 모든 스크립트들을 새로 저장하기는 너무 번거롭습니다. 혹시 다른 해결 방법 없을까요? visual studio와 unity 모두 업데이트 해보았으며, unity에서 한글도 설치 했습니다. visual studio에서 도구 - 옵션 - 텍스트 편집기 - 일반 에서 '시그니처 없는 utp-8 인코딩 자동 검색'을 체크 해제 해보기도 하였고 다시 체크 해보기도 하였으나 한글 주석은 계속 깨졌습니다.

  • 아!
  • C#
  • unity
상병 댓글 2 좋아요 0 조회수 1955

멀티스레드 와 Lock 질문

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

안녕하세요. 항상 양질의 강의 감사합니다! 복습중 이해가 확실히 안되는 부분이 있어 질문드립니다. 서버에서 다양한 곳에서 Player를 이동시킬 수 있기 때문에(다른 플레이어가 스킬로 Player를 밀쳐내는 등..) Player를 이동시키는 부분은 한 곳에 몰아서 Lock을 걸고 실행시켜 준다고 설명해 주셨습니다. 그래서 위처럼 GameRoom에 Player가 움직이는 로직을 몰아서 Lock을 걸어주셨는데, 제가 궁금한 점은, HandleMove멤버함수에서 특정 Player를 참조(?) 하고있는 인자 player를 가지고 Lock을 걸고 작업을 하고 있을 때, 다른 클래스의 맴버함수에서도 똑같은 Player를 참조해서 Lock을 걸고 작업하려고 한다면 Lock이 걸리나요? Lock을 건다는건 메모리상에 실제로 생성된 객체(?)를 기준으로 걸리는 건가요? 설명이 많이 미흡한 점 죄송합니다 ㅜ.

  • C#
  • unity
조영웅 댓글 1 좋아요 0 조회수 396

딜리게이트 이해 질문입니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

제가 완벽하게 이해못한거같아 질문드립니다! 질문1. 대리자 딜리게이트를 쓰는이유 함수나 클래스내에 수많은 기능이 있고 그 모든 기능을 전부 쓸필요가 없다면 필요한 기능(함수)만 입력하여 반환 받아 사용하는 편리성? 역할이 맞는가요 질문2. 대리자 사용방법 수업을 들으며 3가지를 만들어야하는거 같았습니다 1. 대리자 delegate 2. 대리자가 사용할 함수(이걸 인자로 넘김) 3. 대리자 함수를 인자로 받으면 그에맞는 값을 반환하는함수 ================================== ( 수업에선 delegate int OnClicked(); ) (우리가 인자에 넣을)함수를 전해주는 대리자 delegate + 반환형식 + 대리자이름(); 여기서 대리자와 같은 형식이며 대리자와 같은 클래스내 함수들을 s라고 하면 메인함수에서 대리자 대 = new 대리자(); 로 객체 생성하고 대리자 대 = new 대리자(s); 또는 대 = s ; 대리자에 함수 전달 =================================== (수업에선 ButtonPressed(Onclicked clickedFunction)) 함수를 지닌 대리자 혹은 함수 자체를 인자로 받는 함수 하나 더 생성 static void Result( 함수 혹은 [함수가 담긴 대리자] ) { 함수(); } 역할은 인자로받은 함수내 필드값을 반환 해주는 함수 ====================================== 끝으로 대리자에 들어가는 함수들은 대리자와 같은 형식이어야하고 (같은 반환형식) 각 함수마다 필드내용은 다르게 설정가능?!? (콘솔명령어로 테스트해보니 그런거같아보여서요) static int test1(){ return 1; } static int test2(){ return 2; } 가 있다면 대리자에 test1함수를 넣고 대리자 혹은 test1함수를 result(대리자 인자)의 인자로 넣을시 1의 값을 반환 대리자에 test2함수를 넣으면 2의 값이 반환되는것이 맞나요? ====================================

  • c#
  • C#
Hustleinmablood김용호 댓글 1 좋아요 0 조회수 325

Unity 실행이 안됩니다..

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

NetworkManager 에 script를 추가하고 실행을 하면 Unity가 멈춥니다. NetworkManager를 빼고 실행하면 실행이 되는데 뭐가 문제인지 잘 모르겠네요.. 노트북으로 실습하고 있습니다.

  • network
  • unity
  • C#
미니형 댓글 2 좋아요 0 조회수 347

25 x 25 질문입니다

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

강사님 while(true) 로 하고 강사님의 코드와 똑같이하고 실행하면 마우스 커서 포인트가 0,0 에서 25*25 계속 생성이 안되고 쭉 내려오는식으로 계속 생성이 됩니다. using System ; namespace Algorithm { class Program { static void Main ( string [] args ) { Console . CursorVisible = false ; const int WAIT_TICK = 1000 / 30 ; const string CIRCLE = "●" ; int lastTick = 0 ; while ( true ) { #region 프레임 관리 // FPS 프레임 ( 60프레임 OK 30프레임 이하로 내려가면 뚝뚝 끊긴다) int currentTick = System . Environment . TickCount & Int32 . MaxValue ; // 만약에 경과한 시간이 1/30 초볻 작다면 continue; 한다. if ( currentTick - lastTick < WAIT_TICK ) continue ; lastTick = currentTick ; #endregion // 1. 입력 // 2. 로직 // 3. 렌더링 Console . SetCursorPosition ( 0 , 0 ) ; for ( int i = 0 ; i < 25 ; i ++ ) { for ( int j = 0 ; j < 25 ; j ++ ) { Console . ForegroundColor = ConsoleColor . Green ; System . Console . Write ( CIRCLE ) ; } System . Console . WriteLine () ; } } } } }

  • C#
starkshn 댓글 4 좋아요 1 조회수 591

객체지향과 절차지향의 구조적(?) 차이점 및 기타질문

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

아아앗... 질문하구 보니 다음 강의에서 질문 드렸던 내용들이 나오네요... 그래두 질문은 남겨둡니다. 답변 미리 감사드립니다^^ 안녕하세요! 오늘도 강의 잘 보았습니다. 항상 기본적인 질문만 드리는 것 같아 민망하네요... 강의 보고 객체지향, 절차지향의 개념을 처음 알게 돼서 정확히 알고 싶어서 검색을 해보았는데 해결이 안 되는 부분이 있어서 질문을 남깁니다. 1. C 계열 언어는 절차지향 언어이다 혹은 절차지향 언어에 가깝다는 검색 결과가 많았는데, 이러한 C 언어에서 객체지향 프로그래밍을 할 때 이점이 있나요? C 언어가 절차지향 언어라면 객체지향을 사용하는 건 약간 목적이나 기능을 거스르는? 것이 아닌가 하는 의문이 들어서요. 2. 절차지향, 객체지향에 대한 개념적인 차이는 어느정도 이해가 되었는데 코드 구현상에서 그 차이를 잘 모르겠습니다. 선생님이 보여주신 class Knight에 knight의 속성을 넣어서 모듈화 한 것도 이전 강의에서 사용했던 것과 어떻게 다른지 크게 와닿지 않았습니다. 예를 들어서 지난 강의에서 struct를 사용해서 모듬세트를 만들어준다고 하셨는데 그것과 class가 어떻게 다른지, 어떤 상황에서 다른지 잘 모르겠습니다. 검색을 해보았을 때도 접근방법, 상속참조의 차이다 라는 내용이 주를 이뤄서 이 두 개를 왜 구분해야하는가?에 대한 의문은 해결이 안 되었어요. 그리고 혹시 C# 관련 교재를 추천받을 수 있을까요? 기초적 질문을 하게 될 때마다 항상 먼저 검색을 해보곤 하는데 블로그 등으로 알아보는 게 한계가 있는 것 같아서요. 책을 통해서 좀 더 공부하고 싶은데 좋은 교재가 있다면 추천받고 싶습니다! 마지막 질문으로 게임학원을 다니셨다고 했는데 학원을 다니는 것이 좋은 선택이었다고 생각하시는지 궁금합니다. 선생님 강의도 정말 훌륭하지만(제가 인프런에서 들어본 것중에 제일 좋았어요) 혼자서 공부하는 게 힘들 때도 있어서 학원을 고민 중이거든요. 학원에 대한 평가가 워낙 갈려서 선생님 의견도 참고하고 싶어서 여쭤봅니다. 긴 질문 죄송하고, 늘 자세한 답변 감사드립니다. 좋은 하루 보내세요! ^__^

  • c#
  • C#
yunahyeri 댓글 1 좋아요 0 조회수 627

구조체(struct) 활용과 열거형(enum)과의 차이점

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

안녕하세요. 수업 잘 듣고 있습니다! 항상 감사드립니다. 이번 강좌에서 hp, attack 등 다양한 값을 일일이 입력하고 수정하기 귀찮기 때문에 구조체를 만들어서 값을 가져온다고 알려주셨는데 struct 함수와 enum 함수 사용에 어떤 차이가 있는지 알고 싶습니다. 검색해서 봤는데 enum은 순서대로 배열하고 struct는 일치되지 않은 여러 형태의 매개변수를 쓸 수 있는 것이 유용하다고 배웠습니다. 그런데 영상에서는 hp, attack은 int로 주고, player type은 player라는 새롭게 만든 함수로 줬고 그로 인해서 오류가 발생해서 player를 삭제하고 함수를 사용했는데 그렇게 되면 원래 일일이 인자를 넣어주던 거랑 어떻게 다른지 감이 오지 않아서요. 둘 다 인자 값을 하나하나 일치시키지 않으면 오류가 발생하는데 struct를 써야하는 이유가 따로 있는가?가 궁금해요. 그리고 저번 강의에서 C#은 인덱스를 불러올 때 전체를 다 불러오지 않고 일부만 지정해서 불러올 수 있다고 하셨는데, struct도 그런 식으로 일부만 지정해서 불러와서 쓰면 안 되는 건가요?

  • c#
  • C#
yunahyeri 댓글 1 좋아요 1 조회수 3102

Send의 Lock

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요. 항상 질 좋은 강의 감사합니다! 복습중에 이해가 안가는 부분이 있어 질문 드립니다. ServerCore의 Send부분 입니다. 제가 다음과 같이 이해를 했습니다. Send를 호출해서 Lock을 걸은 스레드가 RegisterSend를 호출하고, 여기서 pending이 true 라면 그대로 종료하면서 Lock을 풀고, 이후에 Send를 호출한 스레드는 Queue에만 담고 종료한다. 나중에 다른 스레드로 OnSendCompleted가 비동기로 호출되면, Queue를 확인해서 일감이 있다면 바로RegisterSend를 호출해서 처리한다. 일단 이렇게 이해하는게 맞는건지 궁금합니다. 만약 맞다면 Queue에 일감이 있어 OnSendCompleted를 비동기로 실행한 스레드가 RegisterSend를 호출하면, Send에는 Lock이 안 걸려있는 상태 이니 RegisterSend가 동시에 두 번 호출될 수 있지 않나요?

  • C#
  • unity
  • network
조영웅 댓글 1 좋아요 0 조회수 396

왜 8바이트가 나오는지 잘 모르겠습니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

8:24에서 "ABCD"의 길이는 4인데 바이트 배열로 바꾸면 왜 8바이트가 되는지 모르겠습니다.

  • C#
  • unity
  • network
미니형 댓글 1 좋아요 4 조회수 310

매개변수에 int 지정을 하지 않으면 어떻게 되나요?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

안녕하세요. 항상 좋은 강의 감사드립니다. 이번 수업에서 Add 함수를 만들 때 반환값을 정수로 정하기 위해서 int를 넣은 부분까지는 이해가 됐는데요 매개변수에도 int를 주셨잖아요 만약 int를 지정하지 않으면 함수가 a, b가 숫자(정수)더라도 정수라고 인식하지 못해서 오류가 나나요? 아니면 단순히 정수라는 것을 좀 더 명확하게 표현하기 위해서 int를 넣은 것인가요? 그리고 아래와 같이 Console.ReadLine을 통해서 a, b를 입력받도록 했는데 '실행할 테스트 파일이 없다'는 오류가 출력되는데 이유가 있을까요?

  • c#
  • C#
yunahyeri 댓글 1 좋아요 0 조회수 309

인기 태그

인프런 TOP Writers

주간 인기글