PropertyChanged/RelayComman 관련
미해결
WPF (.NET Core, C#, 자막제공)
안녕하세요. 강사님 PropertyChanged/RelayComman 에서 1. INotifyPropertyChanged 2. Raisepropertychanged 3. Onpropertychanged 1,2,3 차이가 무엇인가요?
- C#
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
WPF (.NET Core, C#, 자막제공)
안녕하세요. 강사님 PropertyChanged/RelayComman 에서 1. INotifyPropertyChanged 2. Raisepropertychanged 3. Onpropertychanged 1,2,3 차이가 무엇인가요?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
public void WriteUnlock() { int lockCount = --_writeCount; if (lockCount == 0) Interlocked.Exchange(ref _flag, EMPTY_FLAG); } 위의 코드에서 lockCount 지역변수를 만들어주신 이유가 따로 있으신지 궁금합니다! writeCount는 어차피 WriteLock을 잡은 애만 쓰는 변수라고 이해했는데, 그러면 writeCount-=1; if(writeCount==0) 이렇게 써도 괜찮지 않을까라는 생각이 들었습니다! 너무 사소한 질문인 것 같은데, 열심히 듣다가 궁금해져서 질문드립니다ㅠㅠ
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
루키스님 안녕하세요? 지난 질문 답변을 아직 못받아서 재질문 드리게 되었습니다. 인프런 AI가 답변을 남겨서 일까요? 아님 제 질문에 실수가 있었을까요? 후자의 경우라면 좀 더 신경쓸 수 있도록 하겠습니다 https://www.inflearn.com/questions/1126711/%EC%9E%A1%ED%81%901-2%EB%A5%BC-%EB%93%A4%EC%9C%BC%EB%A9%B0-%EC%A7%88%EB%AC%B8%EC%9D%B4-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4-push-%ED%81%90%EB%A1%9C%EC%A7%81-send-%EC%9D%98-%EC%8B%9C%EA%B0%84%EB%B3%B5%EC%9E%A1%EB%8F%84-%EA%B4%80%EB%A0%A8
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendAsync를 상위 참조에서 lock을 사용하여 관리하고 있습니다. 이러한 상황은 일반 Send를 사용하는 상황과 마찬가지로 비동기화의 강점을 이용하지 못하는 상황아닌가요?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
bool pending = _listenSocket.AcceptAsync(args); if (pending == false) OnAcceptCompleted(null,args); 해당 코드는 _listenSocket.AcceptAsync(args); 에서 이미 call back 함수를 사용하여 해당 비동기 작업이 실행될 때 까지 기다린 다음 위에서 정의해준 call back 함수인 OnAcceptCompleted를 호출하는 것으로 이해하고 있습니다. 그런데 굳이 return을 bool형인 peding으로 받아 보류인지 아닌지 확인하여 바로 peding이 false이면 직접적으로 OnAcceptCompleted 함수를 호출할 필요가 있는가 하는 의문이 들었습니다. 이는 멀티 쓰레드 상황을 대비한 사항인가요? 보류를 확인하여 바로 통과 하였다면 직접적으로 함수를 호출하는것은 속도 측면의 이유에서 추가하는 것인가요? 그렇지 않다면 굳이 if(pending == false) OnAcceptCompleted(null, args); 부문을 해당 코드에서 삭제해도 무관하지 않을까 하는 궁금증이 생깁니다.
해결됨
[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
안녕하세요. 궁금한 점이 있어서 질문을 남깁니다! 현재 제 컴퓨터의 기본 브라우저가 웨일로 되어있습니다. 2강에서 프로젝트를 만들고 난 후, 시작을 했을 때, 웨일에서는 개인 정보 보호 오류라고 뜨고, 크롬에서는 문제없이 작동이 됩니다. 혹시 이게 어떤 것 때문에 그러는지 알 수 있을까요? 요즘 눈도 많이 오고 날씨도 추운데 항상 감기조심하세요.
미해결
게임 디자인 패턴 with Unity
어떤 점이 문제가 되나요 ? 또 다른 기능들을 다 넣어버리면 문제가 된다고 하셨는데 예를 들어 어떤 기능인가요 ?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
To Debug, run app with -diag-job-temp-memory-leak-validation cmd line argument. This will output the callstacks of the leaked allocations. Internal: JobTempAlloc has allocations that are more than the maximum lifespan of 4 frames old - this is not allowed and likely a leak 2D로 여러 이미지를 만들고 애니메이션으로 움직이게하는데 위의 두 오류가 계속 떠서 처음엔 이미지 용량이 커서 그런가해서 최소 60 최대 130px로 줄였습니다. 근데 저 경고가 뜨는 타이밍도 일관적이지 않고, 인터넷에 쳐봐도 뭔가 해결책을 정확히 모르겠어서 질문해봅니다. 일반적으로 하는 방법대로 png 하나하나 끌어왔는데 왜그럴까유..? 움직이게 하기 위해 사용하는 이미지가 다 다르면 안되는걸까요..? 한 캐릭터가 여러 행동을 하도록 여러 개의 애니메이션을 만들고 있는거라 파악하기가 어렵네요
해결됨
[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
강의 수강 중인데 디스코드 채널 어떻게 참가할 수 있나요?
해결됨
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 강의 잘 듣고 있습니다. 전역변수 사용에 있어 원자화 되지 않은 함수들로 인한 race condition 문제로 저희가 원하지 않는 값들이 return 되기에 lock을 사용하여 해당 lock동안에는 다른 Thread의 사용을 방지한다고 이해하였습니다. 그렇기 때문에 lock의 사용이 빈번해진다면 전반적으로 코드의 구성도 복잡해지고 성능 측면에서도 좋지 못하다 이해하였고, 그렇다면 lock의 사용은 변수를 공유하지 않는 부분에서는 필요치 않을까? 하는 의문이 들었습니다. 나아가 만약 lock을 사용하는 Thread가 있다면, 그 기간 동안에는 lock을 사용하지 않는 다른 Thread들 도 lock의 명령어들이 끝날 때까지 기다려야 하는 것인지 궁금합니다.
미해결
무작정 따라하기! TPS 게임 만들기.
앞서 Instantiate 함수로 좀비를 spawnPoint에 랜덤으로 생성하는 것은 가능합니다. 10:58 에서 EnemySpawn 함수를 영상대로 작성하는 경우 좀비가 등장하지 않고 오류가 발생합니다. NullReferenceException: Object reference not set to an instance of an object GameManager+<EnemySpawn>d__20.MoveNext () (at Assets/_My/Scripts/GameManager.cs:123) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <f7237cf7abef49bfbb552d7eb076e422>:0) UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator) GameManager:Start() (at Assets/_My/Scripts/GameManager.cs:52) 다만 yield return new WaitForSeconds(2f); 아래에 코드를 작성하면 정상적으로 좀비가 랜덤 생성됩니다. 그대로 사용해도 되지만 원인을 추적하고 싶은데요 ㅜㅜㅜ 어느 부분을 점검하는 것이 좋을지 문의드립니다. IEnumerator EnemySpawn() { //Instantiate(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform.position, Quaternion.identity); yield return new WaitForSeconds(2f); GameObject enemy = PoolManager.Instance.ActivateObj(4); SetObjPosition(enemy, spawnPoint[Random.Range(0, spawnPoint.Length)].transform); StartCoroutine(EnemySpawn()); }
미해결
[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
라이브 토요일->일요일 변경사실을 모르고 오늘 업로드된 강의를 들으려고 왔더니 월요일 업로드로 바뀌었네요. 평일에는 한번에 3시간 이상 내기가 어려워서, 멘토링 비용 지출하더라도 주말에 깔끔하게 강의를 다 듣고 싶은데 지금이라도 멘토링 한 자리 받아갈 수 있을까요..?
미해결
[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
본 연재형 강의를 신청하면 라이브 강의도 같이 볼 수 있는 줄 알고 신청 기간을 놓쳤습니다. 혹시 지금이라도 라이브 강의 신청이 가능한지, 또 라이브 강의 신청 비용은 어느정도 되는지 궁금합니다.
해결됨
윈폼C#.NetFramework 0.5년차~3년차(파트1)
안녕하세요. 동영상 보다가 이해가 안되는 부분이 있어서요.. 아래와 같이 슬립 3초를 줬을때 a가 왜 3이 출력되는지 상세히 설명되는 부분이 없더라구요.. 보충 설명 가능하실까요??
미해결
[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
안녕하세요! ZIGZAG 강의를 보던 중 GameController 스크립트와 PlayerController 스크립트에서 IEnumerator로 Start 함수를 사용하는 데, 일반적인 void가 아닌 IEnumerator로 선언하기에 사용하는 이유가 무엇인지 궁금해 질문을 남깁니다. 해당 스크립트들에서 Start를 Coroutine으로 선언하는 특별한 이유가 있을까요??
미해결
윈폼C#.NetFramework 0.5년차~3년차(파트1)
델리게이트 강의... wpf로 하는데.. 에러가 뜨네요.. 인스턴스안해서 뜨는거 같은데.. 어떻게 인스턴스 해줘야하나요? 알려주심감사하겠습니다.~
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
안녕하세요. 제 포트폴리오를 만듦에 있어서 어떻게 설정해야 할 지 모르는 문제가 있어서 질문합니다. 제가 구현하고자 하는 포트폴리오에서 바다 영역을 설정하고 싶은데 어떤 식으로 설정하면 될 지 잘 모르겠어서 질문드립니다. 바다 부분에서 수영을 하도록 하고 싶은데 박스 형태도 아니고 구역이 겹치는 부분이 있어서 구역을 어떤 식으로 설정한 다음에 나눠서 해야 할지 감이 안 옵니다. 어떻게 설정하는 게 가장 좋은 걸까요? 답변 부탁드립니다. 감사합니다. 추가 정보 => Terrain이 아래 사진에 보이는 영역입니다.
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
강의에 올려주신 대로 int a = 10; int b = ++a; 결과값이 11이 나오는걸로 이해했습니다 심심해서 추가적으로 작성을 좀 해보았는데 int a = 10; int b = ++a; // 10 + 1 == 11 int c = ++b; // 11 + 1 == 12 int d = ++c; // 12 + 1 == 13 Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); 라는 식으로 코딩을 했을 때 주석처리 한게 제 예상 결과값 인데 실제로는 a,b,c,d에 11, 12, 13, 13 이라는 숫자가 저장되서 보여주더라고요 혹시 코드를 읽는 흐름이 제가 이해하는 것과 다른걸까요?
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
//string Array.Copy(Encoding.Unicode.GetBytes(this.name),0,segment.Array,count,nameLen); 강사님께서 destination Index가 들어갈 자리에 count를 인자로 주셨는데, segment의 경우 자료형이 ArraySegment이기 때문에 단순 count가 아닌 segment.Offset + count를 destination Index로 주어야 될것같은 의문이 들어서 질문드립니다.
미해결
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
루키스님 안녕하세요? 잡큐 1, 2를 들으며 본 서버 강의 앞부분과 비슷한 내용같은데 차이를 몰라 질문 올리게 되었습니다. 아래 질문들의 제 본질적인 질문 은 옛날에 만든거 아닌가? 왜 새로 만드지? 뭐가 다른거지? 입니다 JobQueue #1 강의 중 PacketHandler.cs 수정 중에 스레드가 일을 Push할 때 처리 가능한 상황이면 해당 스레드가 처리, 그렇지 않으면 Queue에 Push만 하고 종료, 서버코어의 Session.cs의 Send()가 이미 비슷하게 구현됨 이라고 설명해주셨는데, 말씀 그대로 이미 비슷하게 큐로 구현이 되어있어 뭐가 다른거지 생각해보다가 아래 그림 플로우 처럼 제가 이해한게 맞는지 궁금합니다. JobQueue #2 강의 중 Broadcast() 로직의 O(N^2)을 O(N)으로 줄이기 위해 패킷 모아보내기 스킬을 소개해 주셨습니다. 그런데 강의 앞부분 'SendBuffer'에서 버퍼를 다룰 때 RecvBuffer와는 다르게 SendBuffer는 외부에 구현함으로써 O(N^2)을 O(N)으로 줄일 수 있다. 라고 이미 말씀해주셨는데요, O(N^2)을 O(N)으로 줄이는 둘의 차이점이 궁금합니다. 둘은 완전히 다른 얘기일까요? 만약 그렇다면, 둘 다 그대로 방치했다면 O(N^3) O(2N^2, 표현이 맞진 않지만 느낌상)이 되는 로직이 되는건가요? 답변 미리 감사합니다. 수강자 올림