inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

다른형식의 근접공격에 대해 질문할것이 있습니다.

미해결

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

다크소울과 몬스터헌터 같은 게임의 근접공격 구현은 스킬의 액션에 새로운 액션을 만든 다음 피격 판정이 있는 무기에 콜라이더를 넣어준 다음 기존의 투사체 공격에 있는 소켓을 이용해서 구현하면 될까요

  • unity
  • modules
고우진 댓글 2 좋아요 0 조회수 200

안녕하세요 루키스님 코드 라이선스 관해서 질문드립니다.

미해결

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

과거에 해당 강의로 공부하고 최근에 다시 복습 중인데 혹시 코드 라이선스가 어떻게 될까요? 외주 작업을 받게 돼서 네트워크 관련 코드를 작성하려고 하는데 문제가 생길 수 있을 거 같아 질문드립니다. 덕분에 공부 너무 잘 하고 있습니다. 감사합니다.

  • C#
  • unity
  • 네트워크
ghwls328 댓글 2 좋아요 0 조회수 162

웹서버로 구현되는 기능들이 궁굼합니다.

미해결

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

안녕하세요! 선생님 강의를 거의 빠짐없이 듣고 열심히 공부하고 있는 수강생입니다. MMORPG 개발 9개 시리즈부터 번외편, M1 강의까지 2~3회씩 반복해서 수강하며, 이제는 새로 올라오는 M2 강의를 매주 주말마다 기다리고 있습니다! 강의를 기다리며 채팅 기능, 길드, 파티, 우편 시스템을 직접 구현해보려고 하는데, 처음으로 강의 내용과 다른 것을 시도하다 보니 제가 제대로 하고 있는지 확신이 들지 않더라고요. 제가 생각하기에 채팅, 길드, 파티, 우편 기능은 ACCOUNT 서버처럼 WEB 서버로 구현하는 게 좋을 것 같아서, MMORPG 시리즈에서 배운 WEB 서버를 기반으로 위에 기능들을 하나씩 만들어가고 있습니다. 서론이 길었네요 ㅠㅠ 궁금한 점이 있습니다! 실제 현업에서는 위에 언급한 기능들이 웹 서버로 구현되는지 아니면 게임 서버로 구현되는지 궁굼합니다!

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
소리차 댓글 2 좋아요 0 조회수 267

스크롤에 아이템을 선택했을때 강조하는 효과는 어떻게 구현하면 될까요?

해결됨

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

안녕하세요. 인벤토리 스크롤 영역에 선택한 아이템을 강조하는 효과는 어떤식으로 구현하면 될지 궁금합니다. 강의를 본 뒤 선택한걸 강조하는 내용이 있나 돌아봤는데 해당 내용은 없는것 같아서요. 아이템을 선택하면 선택된 아이템을 강조하는 효과의 이미지를 활성화 시키려고 했는데 오브젝트를 재활용하는거다 보니 엉뚱한 오브젝트에 이미지가 활성화 되는데 어떤식으로 해야 좋은 구조로 선택표시를 할 수 있을지 알려주실 수 있으실까요?

  • C#
  • unity
  • 객체지향
댓글 2 좋아요 0 조회수 249

Item 깨짐 현상

해결됨

[Unity] 함께 만들어가는 방치형 게임 개발

10강 수강 중 Other > Item에 있는 아이템 삽입 시 화면처럼 마젠타 색으로 모든 아이템이 전부 깨져서 표시됩니다 제가 가지고 있는 패키지에는 Item 항목이 없어 섹션3의 패키지 파일을 다운 받아 유니티에 드래그드롭으로 넣고 Import 된 Item을 꺼냈더니 저렇게 뜹니다 어떻게 해결해야 하는지 질문 드립니다

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
KUMU 댓글 2 좋아요 0 조회수 345

Input 스킬 구현 질문

해결됨

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

안녕하세요! 좋은 강의 감사합니다. 리븐 Q와 아트록스 Q와 같이 Input형 스킬이면서 n번째 사용 스킬이 다른 경우(ex) 리븐 Q 3타 에어본) 어떻게 구현하면 좋을 지 질문 드립니다!

  • unity
  • modules
장원 댓글 3 좋아요 0 조회수 319

C++강의 듣다가 왔습니다.

미해결

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

C++과 언리얼로 만드는 mmorpg 시리즈를 구매한 학생입니다. 1주차부터 이해가 안돼서 찾아보니 Part3 유니티 (클라 프레임워크) Part4 게임서버 (서버 프레임워크 ServerCore) Part7 게임서버&클라 연동 (클라 서버 연동 기본기) Part8 EF Core (ORM) 를 읽어보면 이해하기 쉽다고 하셨는데 part4. 게임서버는 C++강의로 들어도 괜찮을까요??

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
유민영 댓글 2 좋아요 0 조회수 309

멀티 스레드 관련 의문점

미해결

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

안녕하세요 강의 잘 보고 있습니다. 코드를 보면서 멀티 스레드 관련해서 궁금한게 있어 질문 남깁니다. 1.ClientSession에서 Lock을 잡지 않는 이유는 Receive쪽에서 하나의 스레드만 들어오기(낚시대 비유) 때문에 안걸어도 되는건가요? 즉 하나의 스레드가 메서드 안의 메서드를 타고 타고 들어와서 안전한건가요? 2. 1번이 맞다면 ClientSession 에서 GameLogic Push 하는 이유는 스레드 안전성 때문이라기보단 멀티 스레드를 활용하기 위함이라 보면 될까요?

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
toyboy0113 댓글 1 좋아요 0 조회수 187

코드 자료를 받을 수 있을까요?

미해결

따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02

코드 자료를 받을 수 있을까요?

  • C#
  • unity
초롱초롱이1234 댓글 1 좋아요 0 조회수 171

포폴용으로 AWS 인스턴스 1개와 탄력적 IP 1개를 항시 켜놔도 비용이 부과될까요?

미해결

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

루키스님 안녕하세요? C# AWS 답변 보고 여기로 와서 클라 입장 공인 IP를 가지고 사설 IP에 접근하는 것 성공했습니다. 아침 답변 감사합니다. 제가 포트폴리오 작성 간에 데모 프로그램을 준비해보려고 하는데 (기준은 C# 파트7 수강 이후입니다) 첫 번째 방법은 클라, 서버 exe 한폴더에 넣고 .bat 파일 만들고 이거 하나만 실행시키서 서버 실행 -> 클라 실행 순으로 입장시키기 입니다. 그런데 이 방법은 .net이 안깔려 있으면 서버부터 크래시가 나길래 인사담당자나 면접관이 못볼 수도 있겠어서 찜찜해서 두 번째 방법으로 생각한건 AWS입니다. 윈도우 프리티어와 인스턴스 프리사양, 그리고 고정용 IP용 탄력적 IP를 만들어서 항시 켜놓으려고 합니다(보안 정책은 여기 강의처럼다 뚫어놓긴 합니다). 그리고 데모 프로그램은 클라이언트만 제시하는 방법을 생각 중입니다. 이 경우 AWS 서비스가 무료거나 소액이면 해볼만한 방법이라고 생각되는데 둘 중에 어느 방법이 괜찮을지 의견 여쭈고 싶어서 질문 드립니다.

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
mhyim 댓글 1 좋아요 1 조회수 248

혹시 어드레서블 강좌 추가계획이 있으실까요?

미해결

레트로의 유니티 C# 게임 프로그래밍 에센스

에센스 도서에 보니까 어드레서블 관련 개정판 내용이 있던데요. 혹시 강좌에도 추가해주실 계획이 있으신가 궁금해서 문의드립니다.

  • C#
  • unity
꿈냥이 댓글 1 좋아요 0 조회수 154

JobTimer 클래스의 우선순위 큐 질문

해결됨

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

안녕하세요. JobTimer 클래스에서 사용된 우선순위 큐 관련해서 2가지 궁금한 점이 있습니다. 1. 여기서 사용된 우선순위 큐는 최소힙으로 구현된게 맞나요? PriorityQueue.cs 에 작성된 우선순위 큐는 최대힙 이지만, JobTimerElem 구조체를 정의할 때 CompareTo 메서드를 오버라이딩 해서 최소힙을 사용하게끔 수정한 것으로 이해했는데 제대로 이해한게 맞을까요? 2. Pop 메서드에서 힙 정렬 과정 질문 PriorityQueue.cs에 작성된 Pop 메서드의 While 문이 힙 정렬을 담당하는 부분으로 이해했습니다. 만약 While 문 한 번으로 정렬이 끝나지 않는 경우는 어떡하나요? 예를 들어 다음과 같이 저장된 최소 힙의 경우 이렇게 While문이 한 번 끝났는데 최솟값인 2가 루트 위치에 있지 않은 경우가 있어서 질문 드립니다.

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
xkdl780 댓글 1 좋아요 0 조회수 146

스텟 연동 관련해서 질문이 있습니다.

미해결

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

제가 기존에 개발해둔 아이템 시스템을 연동시키면서 아이템의 스텟을 정할때 Resources/Stat폴더를 참조하고 그걸 기반으로 Enum으로 해당 스텟들이 있는 스크립트 파일을 만든 다음에 아래에 있는 버튼을 눌러서 일일히 Enum 파일을 동기화시켰는데 너무 번거로운것 같습니다. 생성, 삭제, 수정할때마다 동기화시키면 작업할때마다 딜레이가 너무 커지는데 다른 방법이 있을까요 if (dataType == typeof(Stat)) { GUI.color = Color.yellow; // Data를 이름 순으로 정렬하는 Button을 그림 if (GUILayout.Button($"Press it after you finish editing")) { StatEnumSynchronizer.SyncStatEnum(); EditorUtility.SetDirty(database); AssetDatabase.SaveAssets(); } } 아래는 해당 enum파일을 만드는 스크립트입니다. using System; using System.IO; using System.Linq; using UnityEditor; using UnityEngine; public static class StatEnumSynchronizer { private const string StatFolderPath = "Assets/Resources/Stat"; [MenuItem("Tools/Sync Stat Enum")] public static void SyncStatEnum() { if (!Directory.Exists(StatFolderPath)) { Debug.LogError($"Directory does not exist: {StatFolderPath}"); return; } var statFiles = Directory.GetFiles(StatFolderPath, "*.asset", SearchOption.TopDirectoryOnly); var statCodeNames = statFiles .Select(file => AssetDatabase.LoadAssetAtPath<Stat>(file)) .Where(stat => stat != null) .Select(stat => stat.CodeName) .Distinct() .OrderBy(name => name) .ToList(); string enumPath = "Assets/Scripts/Enum/ItemStatusAttribute.cs"; using (var writer = new StreamWriter(enumPath, false)) { writer.WriteLine("public enum ItemStatusAttribute"); writer.WriteLine("{"); writer.WriteLine(" Default,"); foreach (var codeName in statCodeNames) { string enumName = SanitizeEnumName(codeName); writer.WriteLine($" {enumName},"); } writer.WriteLine("}"); } AssetDatabase.Refresh(); Debug.Log("Stat Enum synchronized."); } private static string SanitizeEnumName(string name) { return new string(name .Where(c => !char.IsWhiteSpace(c) && (char.IsLetterOrDigit(c) || c == '_')) .ToArray()) .Replace(" ", "_") .Replace("-", "_") .ToUpper(); } }

  • unity
  • modules
고우진 댓글 1 좋아요 0 조회수 200

오브젝트 폴링 문의 합니다.

해결됨

[Unity] 함께 만들어가는 방치형 게임 개발

Add_Queue 함수에서 go.transform.parent = m_pool_Dictionary[path].parentTransform; 부모 설정을 하고 다시 Return 함수로 가서 obj.transform.parent = parentTransform; 다시 부모 설정 하는 이유가 궁금 합니다. 아 그리고 스킬 구현 아이디어는 끝났나요 ?

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
쿠쿠 댓글 1 좋아요 0 조회수 224

포트폴리오 문서작성에 있어서 질문드립니다.

미해결

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

안녕하세요 신입 클라이언트 프로그래머 취업을 준비하고 있습니다. 다름이아니라.. 제가 강사님의 강의를 열심히 듣고 3D로 포트폴리오를 프로토타입 수준으로 제작을 완료했습니다. 플레이어가 메인씬으로 이동해 상점에서 물품을 구매하고 인벤토리를 통해 장비를 장착하고 NPC를 통해서 스테이지로 들어가서 잡몹을 처리후 보스를 처치하고 스테이지를 클리어 하는 부분까지 구현을 했는데요... 이번에 포트폴리오를 제출하려고 하는데 포트폴리오에 얼마나 디테일한 부분까지 작성을 해야할까요?? 그리고 영상을 꼭 필요할까요??? 커뮤니티를 찾아봤는데 말이 다 달라서 질문드립니다...

  • C#
  • unity
  • object-pooling
황보민 댓글 2 좋아요 0 조회수 697

텍스트 변환 Mark에 대하여 질문이 있습니다.

미해결

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

EffectAction에서 public string BuildDescription(Effect effect, string description, int stackActionIndex, int stack, int effectIndex) { var stringsByKeyword = GetStringsByKeyword(effect); if (stringsByKeyword == null) return description; if (stack == 0) // ex. description = "적에게 $[EffectAction.defaultDamage.0] 피해를 줍니다." // defaultDamage = 300, effectIndex = 0, stringsByKeyword = new() { { "defaultDamage", defaultDamage.ToString() } }; // description.Replace("$[EffectAction.defaultDamage.0]", "300") => "적에게 300 피해를 줍니다." description = TextReplacer.Replace(description, "effectAction", stringsByKeyword, effectIndex.ToString()); else // Mark = $[EffectAction.Keyword.StackActionIndex.Stack.EffectIndex] description = TextReplacer.Replace(description, "effectAction", stringsByKeyword, $"{stackActionIndex}.{stack}.{effectIndex}"); return description; } 여기 부분에서 왜 굳이 스택 0번째 인걸 구분하고 Effect에서 여기에서 public string BuildDescription(string description, int effectIndex) { Dictionary<string, string> stringsByKeyword = new Dictionary<string, string>() { { "duration", Duration.ToString("0.##") }, { "applyCount", ApplyCount.ToString() }, { "applyCycle", ApplyCycle.ToString("0.##") } }; description = TextReplacer.Replace(description, stringsByKeyword, effectIndex.ToString()); description = Action.BuildDescription(this, description, 0, 0, effectIndex); // 여기부분에 질문이 있습니다 여기에서 0번째 것을 구분하고 var stackGroups = StackActions.GroupBy(x => x.Stack); foreach (var stackGroup in stackGroups) { int i = 0; foreach (var stackAction in stackGroup) description = stackAction.BuildDescription(this, description, i++, effectIndex); }// 여기에서 1스택이상 스킬의 텍스트를 전부 변환해주는데 return description; } EffectStackAction에서 public string BuildDescription(Effect effect, string baseDescription, int stackActionIndex, int effectIndex) => action.BuildDescription(effect, baseDescription, stackActionIndex, stack, effectIndex); 이렇게 까지 분리해서 텍스트로 변환하는지 여쭤보고 싶습니다. 그냥 0번째부터 텍스트를 변환하면 안되는건지 질문이 있습니다.

  • unity
  • modules
고우진 댓글 1 좋아요 0 조회수 136

SingletonBehaviour 클래스의 where 제약 관련해서 질문 드립니다.

해결됨

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

안녕하세요. 섹션 2의 SingletonBehaviour 강의 수강 중 궁금한 점이 생겨 질문 남깁니다. 해당 클래스가 MonoBehaviour의 성격을 띄게 하기 위해서 클래스에 MonoBehaviour를 상속시키는 것 까지는 이해가 되었습니다. 그러나 뒤에 다시 SingletonBehaviour<T>에 대한 제약의 필요성이 충분히 이해되지 않아 모호하게 느껴졌습니다. 앞으로 SingletonBehaviour를 상속 받을 클래스에 구현을 강제하는 것인지, 아니면 성능 상의 제가 알지 못하는 이점이 있는 것인지 궁금합니다. 해당 SingletonBehaviour 클래스가 아니더라도, 클래스 설계에 있어 이와 같은 재귀적인 형태의 where 제약이 어떤 의미 또는 의도가 있는 것인지 궁금합니다.

  • C#
  • unity
  • 객체지향
smeargle235 댓글 1 좋아요 0 조회수 193

DeadLock 테스트를 해봤지만, 정상작동?

미해결

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

visual studio 2022로 작업하고 있습니다. Interlocked(9강), Lock(10강), DeadLock(11강)에서 디버깅을 하면서 무한루프 또는 DeadLock(11강)에 디버깅이 안되는 것을 따라해보고 있었습니다. 이전 컴파일러 최적화 강의(6강)를 따라하면서 Debug모드를 relase로 할 때 visual studio에서 3가지의 선택사항이 나왔었습니다. 취소해도 다시떠서 디버깅을위해 내꺼를 제외하고? 를 선택했었습니다.(항목이 기억이 나지 않네요.. 뭐라고 검색해야할지도 모르겠고 프로젝트를 새롭게 만들어도 해당사항은 나오지 않았습니다..) 그러고 나서 영상처럼 이부분이 문제입니다 하는 부분들이 저는 이상이 없더라고요 여기서 중단점 잡아도 안잡히는 문제가 있다고 합니다. 그래서 WaitAll에서 스레드를 찾고 문제점을 찾으셨지만 제가 따라할 때는 중단점으로 넘어왔습니다. 제 생각에는 시간이 지나면서 C#이 업데이트 됐거나, 2019가 아닌 2022로 해서 해당 문제가 안생기는 걸까요? 이것 뿐만 아니라 이전꺼에서도 나왔는데 크게 문제될건 없지만 답답함에 질문드려봅니다.

  • C#
  • unity
  • 네트워크
전하늘 댓글 1 좋아요 0 조회수 152

11분 6초 Array.Copy 질문

미해결

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

Array.Copy(Encoding.Unicode.GetBytes( this.name ), 0 , segment.Array, count, nameLen); 여기서 count가 아니라 segment.Offset + count가 되야 하는거 아닌가요?

  • C#
  • unity
  • 네트워크
명성 댓글 2 좋아요 0 조회수 168

인기 태그

인프런 TOP Writers

주간 인기글