inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

초반 세팅시 버전 및 템플릿 질문

해결됨

AI 시대의 혁신적인 게임 개발 입문 with Unity6

안녕하세요 다른 분야 개발중인데 흥미가 생겨서 수강하게 되었습니다 다름이 아니라 초반 세팅을 하면서 궁금한 점이 생겨서 문의를 남기게 되었는데요 현재(2025년 5월 26일) 기준으로 설치 가능한 유니티6 버전이 LTS인 6.0(6000.0.49f1) Supported인(하지만 추천딱지가 붙어있는) 6.1(6000.1.3f1) 이렇게 두종류가 있던데 강의는 아무 버전으로 들어도 진행에 무리가 없을까요? 두번째로 첫 프로젝트를 생성하는 과정에서 템플릿을 선택할때 저는 Universal 2D가 가장 위에 있던데, 상관없이 2D (Built-in Render Pipeline)을 선택하면 될까요? 그걸 눌렀을때 오른쪽에 프로젝트 세팅 화면이 안나오고 템플릿을 다운로드 받으라는 버튼이 뜨길래 여쭤봅니다 감사합니다

  • C#
  • unity
  • 인공지능(ai)
암차 댓글 1 좋아요 1 조회수 201

이벤트가 늦게 왔을때 문제 발생

미해결

C# 윈폼_ 응용프로그램 개발(.NetFramework)

안녕하세요 이번에 폼 뷰를 공부하면서 이럴경우가 분명 있을껀데 이에 대한 대처 방안이 있을까요? 상황은 이렇습니다. Main 폼 뷰에 child form을 띄었습니다. 그리고 버튼을 누르면 다른 클레스를 불러오는데 그 클레스에 delegate를 사용한 이벤트를 생성하고 이 이벤트 발생하면 child Form에 이벤트 nResponseReceived(callback함수)가 동작 하겠죠.. 근데 이벤트가 생성되고 발생되는 시간이 너무 ~~ 길어요 한 7초?? 그래서 사용자가 답답해서 child Form을 닫아 버렸습니다. 이벤트는 callback 함수 찾아서 가고 있죠.. 이벤트가 다 처리되고 callback함수에 도착 했는데 결과를 출력해줘야할 listView의 핸들이 창을 닫아 버려서 사라졌네... ?? 그래서 그냥 프로그램이 죽어 버려요... 혹시 진행중인 이벤트 취소 하는 방법 없나요?? 아니면 창 닫기 전에 진행중인 이벤트 체크해서 완료 될 때 까지 기다리는 스레드라도 동작 시켜야하나요?

  • C#
  • mssql
  • ADO.NET
  • debugging
  • winform
just kim 댓글 1 좋아요 0 조회수 101

캔버스를 여러 장 사용하는 이유

해결됨

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

좋은 강의 감사드립니다. 현재 설계 상 각 씬마다 LobbyUIController, InGameUIController 각각 해당 씬의 UI 캔버스를 가지고 해당 씬 고유의 UI 를 그리고, UIManager 또한 스스로의 캔버스를 가지고 DontDestroyOnLoad 에 남아서 여러 씬에서 공통적으로 사용되는 UI 를 그리고 있는데요. UIManager 가 DontDestroyOnLoad 에 상주하면서 모든 UI 를 그리는 구조와 비교했을 때 장단점이 무엇일지 여쭤보고 싶습니다. 캔버스와 카메라가 많은 것보다 UI 관련 캔버스를 하나로 통일하고 싶은데 스스로 생각해보아도 두 설계의 장단점에 대해 구체적으로 결론내리기가 어려웠습니다. 감사합니다!

  • C#
  • unity
  • ui
restart 댓글 1 좋아요 0 조회수 171

SocketAsyncEventArgs.BufferList에 관해 질문

미해결

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

void RegisterSend() { if (_disconnected == 1) return; while (_sendQueue.Count > 0) { ArraySegment<byte> buff = _sendQueue.Dequeue(); _pendingList.Add(buff); } _sendArgs.BufferList = _pendingList; try { bool pending = _socket.SendAsync(_sendArgs); if (pending == false) OnSendCompleted(null, _sendArgs); } catch (Exception e) { Console.WriteLine($"RegisterSend Failed {e}"); } } void OnSendCompleted(object sender, SocketAsyncEventArgs args) { lock (_lock) { if (args.BytesTransferred > 0 && args.SocketError == SocketError.Success) { try { _sendArgs.BufferList = null; _pendingList.Clear(); OnSend(_sendArgs.BytesTransferred); if (_sendQueue.Count > 0) RegisterSend(); } catch (Exception e) { Console.WriteLine($"OnSendCompleted Failed {e}"); } } else { Disconnect(); } } } 해당 코드에 대한 질문이 있습니다. RegisterSend에서 sendQueue에 있는 패킷들을 다 빼내서 pendingList에 넣고 pendingList를 args.BuffList로 설정합니다. 이후 OnSendComplete에 처리에 의문이 있습니다. TCP 특성상 부분 전송이 이루어질 수 있다고 생각합니다. 부분 전송이 일어날 경우 확인을 안하고 pendingList.Clear해버리면 send패킷이 유실될 것 같습니다. BufferList에 넣으면 SendAsync시에 c#에서 무조건 전송을 보장해주는건가요? 아니면 BufferList를 사용하지 말고 recv버퍼처럼 해야할 것 같다는 생각이 들어 질문합니다. 또한 BufferList에서 부분전송 체크할 방법이 있나요?

  • C#
  • unity
  • 네트워크
Jaehyuk Lee 댓글 2 좋아요 0 조회수 110

7강 재생

미해결

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part 1)

7강 재생이 안 되는데요. 혹시 비슷한 문제가 있을까요?

  • C#
  • unity
  • photon
양승근 댓글 2 좋아요 0 조회수 93

GetComponent<Poolable> 질문드립니다.

미해결

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

C++과 다이렉트를 배우고 유니티를 배우기위해 학습하고있는 학생입니다 리소스 매니저에서 인스턴시에이트 시점에 각 오리지널 객체에대해 GetComponent함수를 통해 Poolable 객체의 보유여부를 판단하는 모습으로 보이는데요 C#과 유니티에 아직 미숙해서 문의를 남깁니다. GetComponent의 원리가 C++에서 각 컴포넌트를 일차원배열을 선형탐색하여 각각 폭포식으로 dynamic cast를 해보는것과 비슷한 수행성능을 낼 것으로 판단되는데 이게맞다면 모든객체의 인스턴스화 시점에 많은 오버헤드를 일으키지않나요? 만약 맞다면 풀 매니저에서 poolable을 지닌 객체와 안지닌 객체에대해 해시셋등의 자료구조를 통해 두가지의 경우를 캐싱을 하고 최초로 검사하는경우에만 GetComponent를 호출해서 맞는 컨테이너에 캐싱후 결과를 반환하는 식으로 하면 어떨까 질문드립니다. 예시로 만든 코드 남겨드립니다 .

  • C#
  • unity
안산촌놈 댓글 2 좋아요 0 조회수 116

Havecard

미해결

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

안녕하세요 선생님 혹시 HaveCard 만드는 영상은 어디에 있나요 ?? ㅠㅠ

  • C#
  • unity
  • 유니티6
anhyeokjun 댓글 3 좋아요 0 조회수 141

유료에셋 링크 부탁드립니다 ㅜㅜ

미해결

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

수업자료중 유료에셋들을 구매하고 싶은데, 링크를 알 수가 없네요 ㅜ 어디서 설치할 수 있을지 궁금합니다.

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

skillMng질문

해결됨

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

안녕하세요 선생님 수강중에 헷갈린게 있습니다 public void RegisterSkill(CardDB db, int level) { SkillBase existing = activeSkills.Find(x => x.skillid == db.id ); if (existing != null) { existing.LevelUp(level); return; } SkillBase existing = activeSkills.Find(x => x.skillid == db.id ); 이 부분이 이해가 잘 안됩니다 그리고 혹시 지금 스킬 파트 하고 있는데 스킬카드 선택 할때마다 별표시 추가랑 ,타임 옆에 스킬구슬ui 에 스킬 들어가는거 강의가 없는데 혹시 없는건가요 ? 스킬이 나오질 않아요 ㅠㅠ

  • C#
  • unity
  • 유니티6
anhyeokjun 댓글 4 좋아요 0 조회수 221

UI 불러오지 못함

미해결

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

제가 보기 편하게 하려고 Resources 폴더를 Resources 라고 이름을 바꿨습니다 그리고 이름 때문에 안되는건가 하고 이름을 다시 수정하려니까 엑세스가 거부 됐다고 그것도 안됩니다 ㅜㅜ 이름 변경으로 인해 실행이 안되는건가요? 16분 부분입니다

  • C#
  • unity
이강토 댓글 2 좋아요 0 조회수 141

카드 DataBase - CardSelector.cs 와 SessionManager.cs 에 SelectedCard 함수에 대하여

해결됨

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

우선 풍성한 내용의 강의에 항상 감사드립니다. 1.SelectedCard 함수가 CardSelector 에서는 유아이에서 선택 관련한 함수이고 Session Manager 에서는 데이터를 다루는 듯 한데요. 이름을 좀 다르게 쓰는게 낫지 않을까요. 아니면 크게 상관이 없는 건가요. 2.그리고 강의 전반에 걸쳐 Initalize 라고 쓰시는 거 같은데 Initialize 를 줄여서 임의로 쓰시는지도 궁금합니다. CardDB.cs 에서 CardDB 변수명을 db 로 간단히 사용하시는 부분은 차후에 다른 몬스터 db 나 혹은 게임이 확장되었을 시에 좀 혼란스럽지 않을까 하는데 강사님의 의견이 궁금합니다

  • C#
  • unity
  • 유니티6
bluesoul 댓글 2 좋아요 0 조회수 142

Pooling 오류

해결됨

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

안녕하세요 설명을 잘 해주셔서 몬스터 풀링 적용 했습니다 폰트 쪽에서 오류나는거 같은데 잘 모르겠습니다 ㅠㅠ 돌려 보면서 코드 비교 했는데 해결 하지못해서 질문합니다 Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues. UnityEngine.Transform:set_parent (UnityEngine.Transform) Object_Pool:Retrun (UnityEngine.GameObject,System.Action`1<UnityEngine.GameObject>) (at Assets/00_Scripts/Pool_Mng.cs:35) Pool_Mng:Add_Queue (string) (at Assets/00_Scripts/Pool_Mng.cs:90) Pool_Mng:Pooling_OBJ (string) (at Assets/00_Scripts/Pool_Mng.cs:67) Bullet:OnTriggerEnter (UnityEngine.Collider) (at Assets/00_Scripts/Bullet.cs:42)

  • C#
  • unity
  • 유니티6
anhyeokjun 댓글 2 좋아요 0 조회수 176

Delegate 내용은 어디서 다루나요?

해결됨

C# 프로그래밍 기초부터 실전 활용까지

Delegate에 대해 듣고 싶은데 강의명에 delegate이 없어 어느 파트에서 다루는지 궁금합니다.

  • C#
  • .net
최수완 댓글 2 좋아요 0 조회수 129

8주차 ExtralCell 추가됐을 때 서로 공격 못하는 상황 공유드립니다.

해결됨

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

루키스님 따라 공격범위 수정전에 Creature들의 범위가 현재 cell에서 어떻게 됐을지 근본적으로 궁금했었습니다. 기지모로 표현해보니까 이해가 잘 돼서 공유드립니다. 빨간 원이 CellPos이며 노란 원이 사자와 곰에 ExtraCells를 1씩 했었을 때 모습입니다.

  • C#
  • unity
  • MMORPG
전하늘 댓글 1 좋아요 0 조회수 144

UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.

해결됨

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

component.name에는 T 컴포넌트를 가진 게임 오브젝트의 이름이 와야 하는데, 게임 오브젝트의 이름이 아닌 컴포넌트의 이름이 옵니다. 예를 들면 FindChild<Button>이라면, component.name에 Button이 와, FindChild 함수가 계속 null만 return하는 상황입니다. (아래에 코드 첨부) 코드 문제가 아니라 오브젝트 이름 문제였네요,,ㅠㅠ 해결했습니다 UIButton.cs using System; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class UIButton : MonoBehaviour { // 타입별로 오브젝트를 저장 Dictionary<Type, UnityEngine.Object[]> _objects = new Dictionary<Type, UnityEngine.Object[]>(); [SerializeField] TextMeshProUGUI text; // Button 오브젝트의 이름들을 enum으로 저장 enum Buttons { PointButton, } enum Texts { PointText, ScoreText, } private void Start() { Bind<Button>(typeof(Buttons)); // enum은 Buttons인데, Button 컴포넌트를 가진 오브젝트에 매핑해주세요라는 의미 Bind<Text>(typeof(Texts)); Get<Text>((int)Texts.ScoreText).text = "Bind Test"; } void Bind<T>(Type type) where T : UnityEngine.Object { // 1. 딕셔너리에 enum 요소 수만큼 빈 object 배열 넣어주기 string[] names = Enum.GetNames(type); // enum값들이 names에 string으로 담김 UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); // 2. 실질적인 컴포넌트(오브젝트) 찾기 for (int i = 0; i < names.Length; i++) { objects[i] = Util.FindChild<T>(gameObject, names[i], true); } } T Get<T>(int idx) where T : UnityEngine.Object { UnityEngine.Object[] objects = null; if (_objects.TryGetValue(typeof(T), out objects) == false) return null; return objects[idx] as T; } int score = 0; public void OnButtonClicked() { score++; text.text = $"Point : {score}"; } } Util.cs using Unity.VisualScripting; using UnityEngine; public class Util { // go는 최상위 오브젝트 / recursive는 그 자식뿐만 아니라 자식의 자식도 계속 파고들며 찾을건지 여부 public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object { if (go == null) return null; if (recursive == false) { for (int i = 0; i < go.transform.childCount; i++) { Transform transform = go.transform.GetChild(i); if (string.IsNullOrEmpty(name) || transform.name == name) { T component = transform.GetComponent<T>(); if (component != null) return component; } } } else { foreach (T component in go.GetComponentsInChildren<T>()) { if (string.IsNullOrEmpty(name) || component.name == name) return component; } } return null; } }

  • C#
  • unity
더머더머 댓글 2 좋아요 0 조회수 174

Interpolation & Server Tick Frequency

해결됨

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

Hey, I have a question server in main loop dont limit execution time, everything happen withouth deltatime only base on JobSerializer Timer. So in the end we dont really know if server is working with 200 ticks per second or 15. Does this approach isnt affecting player objects latency? Does _lastSendTick = System.Environment.TickCount64; is enough to interpolate beetween player last postion and current? static void GameLogicTask() { while (true) { GameLogic.Instance.Update(); Thread.Sleep(0); } }

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
Frontal Achivment 댓글 2 좋아요 0 조회수 193

카메라 출력 질문

미해결

C# OpenCV 컴퓨터비전 입문 강좌

저도 카메라를 이용해서 출력하고 싶은데 어떤 카메라를 구매해야하나요?

  • C#
  • opencv
  • 컴퓨터-비전
dldbswn394 댓글 1 좋아요 0 조회수 126

Stun 로직 관련해서 문제가 발생합니다.

미해결

절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스

BehaviorGraph - Stun 로직 에서 15분 45초에 만든 사망 시 폭발 로직이 저는 폭발하고 5초뒤에 사라질 때 다시 폭발하는 현상이 발생하는데 이유가 뭘까요..

  • C#
  • unity
백구 댓글 2 좋아요 0 조회수 219

Inventory #1

해결됨

[Unity6] 나만의 서바이벌 게임 만들기

양질의 강의 감사드립니다. 강사님과 같은 정상적인 플레이 시에는 특별한 문제가 없습니다. 나무를 베고 아이템을 획득하고 갯수가 잘 들어오고 이어서 아이템 획득했을 때도 그렇구요. 하지만, 먼저 I key 를 누르고 빈 창을 연 상태에서 나무를 베면 아이템이 들어오지 않는데요. 다시 I key 를 여러번 토글해 보아도 마찬가지구요. 이어서 나무를 베어도 아이템이 획득 되지 않는데, 무슨 문제 인지 궁금합니다.

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

인기 태그

인프런 TOP Writers

주간 인기글