inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

크롬으로 서버에 접속은 되지만 response되지 않는 이유가 궁금합니다

미해결

C# TCP/IP 소켓 프로그래밍

pc에서 c#으로 http방식으로 response하는 server를 구축했습니다. 크롬을 클라이언트프로그램으로 삼아 서버에 접속했습니다. 이때 console.write(request)을 통해 접속된 것은 확인했습니다. 그러나 크롬화면에서는 err_empty_response만 뜹니다. 여러방식으로 테스트해 본 결과 크롬에서 http주소를 접속하면 공통적으로 나타나는 현상 같은데 어떻게 해야 할 지 모르겠습니다.

  • C#
  • tcpsocket
  • tcpip
김창완 댓글 1 좋아요 0 조회수 1807

KeyActon 부분 질문있습니다!

미해결

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

다른 수강생분들 질문을보니 InputManager이 나중에는 삭제된다고 봤습니다. 그렇지만 제가 이해하고있는게 맞는지가 궁금하여 질문남깁니다.! void Start() { Managers.Input.KeyAction -= OnKeyboard; Managers.Input.KeyAction += OnKeyboard; } PlayerControllor 에서 저부분이 KeyActon에 += OnKeyboard 구독 신청 -> InputManager 의 KeyAction 이 null이 아니게 됨 -> Invoke가 실행 -> 이벤트 활성화 -> OnKeyboard 사용가능 -> 움직일 수 있음. 이렇게 이해했는데 이 과정이 맞는건가요??

  • C#
  • unity
pnj991122 댓글 1 좋아요 0 조회수 389

유니티에서 internal 클래스가 사용되는 예

해결됨

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

강의를 들으며 코드를 훑어보던중에 PoolManager.cs에서 Pool 클래스가 internal 접근제한자로 작성되어있는 부분이 궁금하여 질문 드립니다. 현재 코드에서는 어셈블리가 나눠진게 Assembly-CSharp, Assembly-CSharp-Editor 인데 Pool 클래스가 internal로 작성되는 이유가 있는가요? Editor 어셈블리에서 사용되지 않도록 하는것 인가요? 그리고 유니티에서 internal 접근 제한자가 사용되는 경우가 어떤 경우가 있나요? 간혹 게임 에셋이나 코드드를 보며 공부할때 특정 클래스들이 internal로 되어있는 경우를 보는데 이유가 뭔지 궁금점이 생겨 질문 드립니다.

  • C#
  • unity
  • MMORPG
고만재 댓글 1 좋아요 0 조회수 471

점프가 동기화가 되지 않습니다..

미해결

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

안녕하세요! 루키스님 강의를 토대로 2D 플랫포머 형태의 멀티플레이어 게임을 만들어보고 있습니다! 항상 감사합니다. 현재 제가 액션들을 구현하고 동기화를 해보고 있는데, 걷기, 뛰기, 구르기까지는 동기화가 잘 되는데 점프가 동기화가 되질 않습니다.. 점프는 Rigidbody2D의 AddForce를 사용하여 작동되고, 다른 이동 액션들은 루키스님이 보여주신 방식처럼 다음 프레임의 transform.position을 계산하여 PosInfo에 넣어 패킷을 전송하고 있는데요. 점프는 우선 클라이언트에서 AddForce를 통해 점프를 먼저 한 뒤, 현재 위치를 PosInfo에 넣어 패킷을 보내는 방식을 써보았습니다.. 그런데 다른 빌드의 화면에서 볼 때, 점프 애니메이션만 작동하고 실질적인 점프는 작동하질 않습니다. 디버깅 해보았을 때, 클라이언트 -> 서버로 패킷을 보낼 경우에는 패킷이 정상적으로 송신되는 것으로 보이고, 서버 -> 클라이언트로 패킷을 보내는 경우에도 정상적으로 송신이 되는 것 같은데, 클라이언트에서 서버에서 받은 패킷을 디버깅 하는 방법을 모르겠습니다.. 좀 오랜시간 붙잡고 있던 문제라 장황하게 늘어놓아 버렸는데, 궁금한 점은 아래와 같습니다. Q. Rigidbody를 사용한 물리 작용(점프)을 패킷으로 보내기 위해서 제가 사용한 방법이 틀린걸까요?(정말 될 것 같은데 왜 안되는지 모르겠네요..)

  • C#
  • unity
댓글 1 좋아요 0 조회수 431

sql 설치문의

미해결

WPF (.NET Core, C#, 자막제공)

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. SQLEXPR_x64_KOR 설치의 경우 독립실행만 설치 선택 시 2번째 사진과 같이 설치 지원규칙만 있습니다. 여타 [기능선택], [설치규칙], [인스턴스구성]등 각 단계들이 이 컴퓨터 다시시작 규칙이 실패되는 바람에 안나오는 것 같습니다. Management 설치시 동일 문제 있는데 해결법이 궁금합니다. (컴퓨터 다시시작 했는데도 위 내용 변치 않습니다.) ( https://www.sqlcoffee.com/Troubleshooting051.htm 에서 알려주는 레지스터리의 "컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager" 에 존재하는 "PendingFileRenameOperations" 도 제 로컬에는 보이지 않습니다. )

  • C#
GOLD D 댓글 1 좋아요 0 조회수 321

lock()과 InterLocked를 사용한 락 구현에서 원자성 보장의 차이

해결됨

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

데드락 강의에서 "Lock을 통해 원자성을 구현하는 것인가요?" 라는 질문에 아래처럼 답변하신 글을 보았습니다. Lock은 말 그대로 신호등처럼 순차적으로 접근하기 위한 도구이지.어떤 연산이 원자적으로 이루어진다는 보장을 하는 것은 아닙니다. 이번 강의에서는 한가지 더 궁금한게, 의사코드로 설명해주실때, 이게 3줄이라서 이 사이에 끼어든거다라는 늬앙스로 처음에는 이해를 했거든요. 그런데 지금 설명을 들어보니까 몇줄이건 관계없이 CPU에서 locked계열 명령어가 적용되면 해당 부분은 원자성이 보장되는건가요? 라는 질문에는 그렇습니다. 말 그대로 특수한 명령어이죠. 라고하신걸 보고 헷갈려서 질문 드립니다. Q. 데드락 강의 실습처럼 제가 직접 lock()으로 임계 영역을 감싸서 구현하는 것은 해당 영역의 연산들이 원자적으로 이루어진다는 것을 보장받을 수 없고 Interlocked 클래스 같이 마련된 것을 사용하여 임계 영역을 관리하면 해당 영역의 연산들은 원자성이 보장되는 것인가요?

  • C#
  • unity
  • 네트워크
황주은 댓글 2 좋아요 0 조회수 536

이동 동기화가 너무 어렵습니다..

미해결

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

안녕하세요 루키스님 이번 강의 보고 열심히 따라해봤는데 이상하게 똑같이 동작을 안하네요,, 지금 10시간 넘게 강사님의 코드 차이점을 찾고 있는데 못찾았습니다.. 혹시 몰라서 코드를 복사해서 직접 갖다 붙여도 비슷한 상황이 나오게 됩니다. 물론 강사님과의 코드와 간소한 차이가 있지만 로직틀은 벗어나지 않았습니다. 그나마 차이를 찾자면 유니티 에디터 버전 차이인것 같은데 강사님꺼는 2019.3.15f 이고 제꺼는 2022.3.16f입니다. 제 코드로 서버를 돌리고 버전 바꾸고 강사님 코드로 클라를 돌렸을 때는 잘 작동했었습니다. 하지만 클라를 제 코드로 하면 이상하게 CellPos는 정상적으로 바뀌고 Object.Find로 확인해서 이동이 막히는것 까지는 정상 처리가 됩니다. PacketHandler 에서 여러번 확인해봤는데 MyPlayer와 Player의 id가 다른 패킷을 받는걸 봤습니다. 패킷의 내용도 예상대로 잘 받고 있는데 이상하게 Player컴포넌트를 들고있는 오브젝트만 MoveToNextPos로 이동하지 않습니다. 혹시 예상되는 부분이 있으실까해서 적어봅니다

  • C#
  • unity
dpcks5959 댓글 1 좋아요 0 조회수 509

ShowBaseUI, ShowSceneUI 차이

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

UIManager에서 ShowPopupUI는 말 그대로 팝업 ShowSceneUI는 게임에서 고정되는 UI ShowBaseUI는 뭔지 모르겠습니다.

  • C#
  • unity
  • MMORPG
김범주 댓글 1 좋아요 0 조회수 265

2D게임 개발인데 백터3를 사용하는 이유가 있나요?

미해결

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

이번 프로젝트에서 보통 dir은 Vector3로 사용하시던데 이유가 있나요? 어떤거는 Vector2로하고 어떤거는 Vector3로 해서 살짝 혼란이 오네요. 만약 내가 2D게임을 코드를 짤 때 무엇을 기준으로 Vector2, Vector3 사용을 해야할까요?

  • C#
  • unity
H_dong 댓글 1 좋아요 0 조회수 566

UI_Base 질문

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

protected void Bind<T>(Type type) where T : UnityEngine.Object { string[] names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); for (int i = 0; i < names.Length; i++) { if (typeof(T) == typeof(GameObject)) objects[i] = Util.FindChild(gameObject, names[i], true); else objects[i] = Util.FindChild<T>(gameObject, names[i], true); if (objects[i] == null) Debug.Log($"Failed to bind({names[i]})"); } } 에서 순서가 for (int i = 0; i < names.Length; i++) { if (typeof(T) == typeof(GameObject)) objects[i] = Util.FindChild(gameObject, names[i], true); else objects[i] = Util.FindChild<T>(gameObject, names[i], true); if (objects[i] == null) Debug.Log($"Failed to bind({names[i]})"); } 로 object에 value를 findchild로 먼저 다 넣어주고 그 뒤에 objects.add로 dic형태 _objects에다 채워주어야 하지않나요? 상관없나요?

  • C#
  • unity
  • MMORPG
김진호 댓글 1 좋아요 0 조회수 314

CanGo()의 검증이 다중인 이유가 있을까요?

해결됨

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

루키스님 안녕하세요? 본 강의 Hit 판정 #1에서 CanGo()로 플레이어 이동간 검증을 해주셨는데요, GameRoom.cs의 HandleMove()에서 CanGo()를 이미 사용했는데 HandleMove()가 ApplyMove()를 호출함으로써 ApplyMove() 내에서 CanGo()를 다시 호출하고 있습니다. 코스트낭비지 않을까?하고 의문이 들어 질문 올리게 되었습니다. //GameRoom.cs의 HandleMove() public void HandleMove(Player player, C_Move movePacket) { // ...생략 // CanGo 호출 1 // 다른 좌표로 이동할 경우, 갈 수 있는지 체크 if (movePosInfo.PosX != info.PosInfo.PosX || movePosInfo.PosY != info.PosInfo.PosY) { if (_map.CanGo(new Vector2Int(movePosInfo.PosX, movePosInfo.PosY)) == false) return; } // ...생략 // ApplyMove() 호출함으로써 CanGo 호출2 _map.ApplyMove(player, new Vector2Int(movePosInfo.PosX, movePosInfo.PosY)); // ...생략 } //Map.cs의 ApplyMove() public bool ApplyMove(Player player, Vector2Int dest) { // ...생략 if (CanGo(dest, true) == false) return false; // ... 생략 } 강의 재밌게 듣고 있습니다. 미리 답변 감사합니다. 수강자 올림.

  • C#
  • unity
mhyim 댓글 1 좋아요 1 조회수 266

서버의 쿨타임 계산 방식이 이해가 가지 않습니다.

미해결

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

루키스님 안녕하세요? 본 강의 스킬#2에서 스킬 쿨타임은 서버, 클라이언트 둘다 계산을 하는게 맞고, 클라이언트는 코루틴 등을 사용해 쿨타임을 계산하는건 이해가 됐습니다. 그런데 제가 이해한게 맞다면, 서버에서 쿨타임을 계산하기 위해 CheckUpdateFlag()를 재활용 한다고 하셨습니다. (그 안에 State Info.가 포함되어 있으므로) 그런데 그게 서버가 쿨타임을 계산하는 것과 무슨 상관이 있는지 모르겠습니다. 쿨타임 계산이라는 것이 시간 계산에 국한된게 아닌, State 검증을 통해 조건을 확인한다는 말씀일까요? 강의 재밌게 듣고 있습니다 미리 답변 감사합니다. 수강자 올림

  • C#
  • unity
mhyim 댓글 1 좋아요 0 조회수 470

제가 이해한게 맞을까요?

해결됨

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

bool repeat = ThreadName.IsValueCreated; 얘는 그냥 Value가 세팅되어 있는지 아닌지를 true false로 반환해줄 뿐이죠? 생성자로 ThreadLocal<T>의 T를 return해주는 람다를 넣어주면 Value를 return한 값으로 채워주고 만약에 이미 채워져 있다면 그냥 재사용하는건가요? 생성자로 저렇게 Value를 리턴해주도록 만들어놓으면 나중에 Value를 읽어올 때 자동으로 채워주는 건가요?

  • C#
  • unity
  • 네트워크
댓글 1 좋아요 0 조회수 305

새로운 테이블 추가방법?

해결됨

[C#/.NET 8.0]어서와, Blazor Server는 처음이지?

새로운 테이블을 Model에 추가할 경우 어떤 방법이 있을까요?

  • C#
  • postgresql
  • .net
  • blazor
jkkim999 댓글 2 좋아요 1 조회수 341

Renderer2D의 SortMode가 Default 인경우

해결됨

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

안녕하세요 Rookiss님 3주차 강의 #Data02 를 듣는 중에 궁금한 사항이 생겨 질문드립니다. Renderer2D의 Sort Mode 설정을 CustomAxis로 변경후 Sort Axis 설정을 0, 1, 0 으로 하게 되면 오브젝트가 그려지는 기준에 Y좌표가 높은(큰) 오브젝트가 먼저 그려지는것을 이해 하였습니다. (Y좌표가 작은 오브젝트가 맨 마지막(제일 위에) 그려짐) 궁금한점은 CustomAxis 로 변경전 Default인 설정에서는 반대로 Y좌표가 낮은(작은)오브젝트가 먼저 그려지게 되는 것인가요? 아니라면 Default 일때는 어떤 기준으로 그려지는 순서가 정해지게 되는것 인가요? 그리고 궁금한것이 여기서 @BaseMap 의 터레인 타일맵 오브젝트들은 Y좌표가 항상 0인데 이것은 왜 항상 맨 처음 그려지는지 궁금합니다. 아니면 아직 정확하게 이해하지는 못하였지만 Order in Layer를 먼저 기준으로 해서 정렬 된후 그 다음 순서로 Y축을 기준으로 정렬하는것 인가요?.. 모르는 부분이 많아 혼자 찾아보려니 이해력이 부족해서 이해하지 못한 부분이 많아 이렇게 질문드립니다..

  • C#
  • unity
  • MMORPG
고만재 댓글 1 좋아요 0 조회수 297

CheckHeroCampDistanceAndForcePath() 함수에서

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

forcePath를 큐에 넣는데 Dequeue(); 한 번은 왜 해주는 건가요?

  • C#
  • unity
  • MMORPG
댓글 1 좋아요 0 조회수 317

질문 있습니다

해결됨

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

락이 걸려있으면 다른 직원한테 부탁해서 대리로 줄서달라는 느낌이군요 그런데 이 다른 직원이 사실은 식당 관리자쪽의 직원이었다라고 하셨는데 다른 직원을 윈도우즈 커널 쪽에 있는 스레드라고 생각하면 될까요?

  • C#
  • unity
  • 네트워크
댓글 1 좋아요 0 조회수 243

씬 전환시 리소스 로드 에러

미해결

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

안녕하세요 질문이 있습니다. 각각의 씬으로 테스트 할 때에는 잘 되는데, 로그인 씬에서 게임 씬으로 넘어갈 때에 리소스를 로드하는 부분에서 문제가 생깁니다.(@EventSystem, UI_Inven 등의 GameObject) NullReferenceException 이 발생하는데, 문제는 해당 부분에 중단점을 걸고 코드 단위로 테스트해봐도 문제를 알 수 없이 그냥 끝이 납니다.

  • C#
  • unity
유재용 댓글 3 좋아요 0 조회수 651

Clamp 사용 시 앞서 설정한 ViewportToWorldPoint의 min, max를 사용하지 않고 새로 설정하는 이유가 있을까요

미해결

유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발

플레이어 이동 제한을 if로 구현하고 clamp로 더 쉽게 구현하는 방법을 순차적으로 안내주시니 이해하는데 도움이 되었습니다. 👍 👍 해당 부분 관련하여 질문이 있습니다. min = Camera.main.ViewportToWorldPoint(new Vector3(0,0,0)); max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, 0)); 먼저 설정한 값을 Clamp에 사용하지 않고 min = new Vector3(-8, -4.5f, 0); max = new Vector3(8, 4.5f, 0); 다시 설정하는 이유가 16:9로 해상도를 고정하기 때문이라고 하셨는데요. 앞의 min, max를 pritn 했을 때 새로 설정한 Vector3의 x, y 값이 같은 것으로 보입니다. 좌표 값을 수치로 직접 입력하시는 이유를 문의드립니다.

  • C#
  • unity
Yj Shon 댓글 1 좋아요 0 조회수 303

RigidBody.simulated 가 false로 되어있으면 투사체가 안 맞는거 같습니다

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

학습자료 보고 따라 만들고 있는데 투사체가 안 맞는거 같아서 (OnTriggerEnter2D 함수로 진입을 안함) 이것저것 시도해보다 보니 RigidBody.simulated를 켜면 투사체가 맞는 것을 확인했습니다. 근데 학습자료에는 Hero와 Monster Init 할 때, 그리드 방식으로 사용하기 위해 의도적으로 RigidBody.simulated를 끄는 것 같은데, simulated를 끈 상태에서 trigger를 작동시키는 다른 방법이 있는지 궁금합니다. 제가 뭘 놓치고 있는거 같은데 잘 모르겠어요.

  • C#
  • unity
  • MMORPG
루테닛댄 댓글 1 좋아요 0 조회수 545

인기 태그

인프런 TOP Writers

주간 인기글