묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨무작정 따라하기! TPS 게임 만들기.
3강 31:42 private Rig 를 사용하기 위해서 using 구문을 추가해야 합니다
영상에 using 구문이 적용되는 장면은 나오지 않았지만using UnityEngine.Animations.Rigging;을 추가해주셔야 private Rig handRig;가 에러없이 작동합니다. 5분동안 헤매다가 해결법을 찾아서 올립니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
onAcceptHandle 추가 위치 질문 드립니다.
_listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _onAcceptHandler += onAcceptHandler; _listenSocket.Bind(endPoint); _listenSocket.Listen(10)위 코드에서 new Socket() 한 뒤에_onAcceptHandler += onAcceptHandler; 로 핸들러를 추가 했는데,아래 코드처럼 Listen() 뒤에 추가 해도 문제 없을까요?_listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _listenSocket.Bind(endPoint); _listenSocket.Listen(10); _onAcceptHandler += onAcceptHandler;
-
해결됨무작정 따라하기! TPS 게임 만들기.
2강 주의)2:49 에셋과 3:36 에셋이 다릅니다
반드시 3:36 에셋으로 다운로드/임포트 해야합니다2:49에 나오는 에셋은 잘못된 에셋이에요. 그리고 2022.3.15 유니티로 하면 에셋 몇가지가 누락되어 다운로드되니 2022.3.12로 무조건 하셔야합니다
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
byte[] -> ArraySegment 변환 중 생략 된 부분
더미클라와 서버의 Program.cs에서byte가 arraysegment 부분으로 변환되는게 생략되었습니다.어려운 작업은 아니지만, 뒤에 듣는사람 참고하라고 올립니다. 아닌가.. 내가 잘못한 부분이 있었네 public override void OnConnected(EndPoint endPoint){Console.WriteLine($"OnConnected bytes : {endPoint}");byte[] tempBuff = Encoding.UTF8.GetBytes("Welcome to MMORPG Server!");ArraySegment<byte> sendBuff = new ArraySegment<byte>(tempBuff);Send(sendBuff);Thread.Sleep(1000);Disconnect();} public override void OnConnected(EndPoint endPoint){Console.WriteLine($"OnConnected bytes : {endPoint}");//데이터를 보낸다for (int i = 0; i < 5; i++){byte[] tempBuff = Encoding.UTF8.GetBytes($"Hello World {i}");ArraySegment<byte> sendBuff = new ArraySegment<byte>(tempBuff);Send(sendBuff);}}
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
상업적출시를 위한 에셋 사용범위 문의
우선 좋은 강의 감사합니다.강의해주신 내용 토대로, 좀 더 디벨럽한뒤에 마켓에 출시하고자 합니다. 커뮤니티 게시판에 일부 에셋은 사용해도된다고 하였는데, 확인 차 문의드립니다.캐릭터와 UI/ UX 수정은 하지만, 몬스터 디자인이 맘에 들어 그대로 사용하려고 합니다. 사용해도 되는지 여부와, 몬스터 이미지 에셋 판매 계획이 있으신지 문의드립니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
싱글톤 및 인스턴스, C#파일간의 호출관계 질문
static Managers s_Instance; //유일성이 보장된다 public static Managers instance { get { Init(); return s_Instance; } } // 유일한 매니저를 갖고온다 InputManager _input = new InputManager(); ResourceManager _resource = new ResourceManager(); public static InputManager input { get { return instance._input; } } public static ResourceManager resource { get { return instance._resource; } } c#파일간에 어떤식으로 호출되고 연관되는지 이해가 어렵습니다 질문이 모호해서 죄송합니다. 순서가 어떻게 되는지 잘모르겠습니다. 제일처음 start로 시작하는게 playerController.cs에서 시작해서 void start()안에 Managers.input.KeyAction += OnKeyboard; 로 inputManager.cs에 public Action KeyAction = null; 널로 되어있는 이 값에 OnKeyboard 가 저장되게하고 이 뒤부터 순서를 잘모르겠습니다. Managers.cs InputManager _input = new InputManager();public static InputManager input { get { return instance._input; } } _input 생성자 input메서드 이거 두개가 어떻게 사용되는지 모르겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GetComponentInChildren<T>() 메소드 오류
UI 자동화 #1 강의 중 FIndChild 유틸함수를 만드는 과정에서 SC1579 오류가 발생합니다. "T에는 'GetEnumerator'의 공개 인스턴스 또는 확장 정의가 없다"라고 하면서 실행이 되지 않는데 이 부분이 이해가 되지 않아 질문글을 작성하게 되었습니다..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
미로가 처음에 잘 출력되고 while()문이 실행되면서 위로 1줄 씩 추가 출력됩니다
어디를 수정해야 할 지 몰라서 질문 드립니다 ㅠㅠ
-
해결됨[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
타 장르의 게임을 개발하는데 있어서도 도움이 될수있는 강의인지요?
저는 앞으로 마블스냅 같은 게임을 1인개발로 만들어 출시해서 운영해보고 싶습니다.그 목표를 이루는데에 있어서, 지금 이 강의가 도움이 될수있을까요?게임 장르가 다르면 사용되는 기술이나 방법들이 많이 달라질수도 있는건가요?이 강의를 들으면 오직 방치형, 리니지라이크 같은 종류의 게임들만을 만드는데만 도움이 되고타 장르의 게임을 개발하는데는 별로 도움이 되지않는것인지 궁금합니다. 알려주세요.
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
수업자료가 어디있는 거죠?
위치를 모르겠네요ㅠ
-
미해결C# 입문부터 Xamarin Forms(자마린 폼즈) + Maui(마우이) 안드로이드, 윈도우 앱(UWP) 동시에 만들기
flyoutpage가 view추가에 안뜹니다.
2019 사용하고있구 자마린폼즈도 다운되어있는 상태인데 왜 안뜨는지 모르겠네요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CSharp{ enum Playertype { None=0, Knight=1, Archer=2, Mage=3 } class Player:Creature { protected Playertype type = Playertype.None; protected int hp = 0; protected int attack = 0; protected Player(Playertype type):base(CreatureType.Player) { this.type = type; } public void SetInfo(int hp, int attack) { this.hp = hp; this.attack = attack; } public Playertype GetPlayertype() { return type; } public int GetHp() { return hp; } public int GetAttack() { return attack; } public bool IsDead() { return hp <= 0; } public void OnDamaged(int damage) { hp -= damage; if (hp <= 0) { hp = 0; } } class Knight : Player { public Knight() : base(Playertype.Knight) { SetInfo(100, 10); } } class Archer : Player { public Archer() : base(Playertype.Archer) { SetInfo(70, 15); } } class Mage : Player { public Mage() : base(Playertype.Mage) { SetInfo(60, 20); } } }} using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CSharp{ enum Mode { None, Lobby, Gild, Biliage } ; internal class Game { Player player = null; Monster monster = null; Mode mode = Mode.Lobby; public void Process() { switch(mode) { case Mode.Lobby: ProcessLobby(); break; } } public void ProcessLobby() { while (true) { Console.WriteLine("직업을 선택하세요"); Console.WriteLine("[1]검사"); Console.WriteLine("[2]궁"); Console.WriteLine("[3]마법사"); string input = Console.ReadLine(); switch (input) { case "1": player = new Knight(); break; } } } } } 이렇게 있을 때 두번째 파일의 player = new Knight();에서 심각도 오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요. 라는 오류가 뜹니다 아무리 찾아봐도 뭐가 문젠지 모르겠어요ㅠㅠ 처음엔 오류의 원인을 찾는게 원래 이렇게 어려운건가요? 찾아볼 때 그 과정에서도 모르는 말이 너무 많아서 하나하나 찾아가다보면 이렇게 오래 걸릴 단계가 아닌 것 같은데 시간이 많이 지체되고 결국 잘못된 방향으로 찾아서 해결책도 찾지 못할 때가 많아요.처음 공부할 때는 너무 막히면 질문하고 일단 넘어가고 나중에 돌아오는게 맞을까요? 아니면 끝까지 문제를 파악하고 넘어가야할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
질문있습니다@!!
안녕하세요 강의를 듣다 enum으로 하나씩 넣는게 제 개인적인 생각으로는 귀찮다라는 생각을 받았어요 그래서 이걸 오브젝트의 이름만 받아서 사용할 수 있게 해보자 해서 짜봤는데 강의에서 소개해주신 enum으로 관리하는 것과 제 코드와 비교해서 enum으로 관리할 때의 장점이 있을까요? 그리고 아래 코드에서 개선할만한 부분도 있다면 알려주시면 감사하겠습니다private Dictionary<Type, UnityEngine.Object[]> _componentDictionary = new Dictionary<Type, UnityEngine.Object[]>(); private void Start() { Bind<Button>(); Bind<TextMeshProUGUI>(); Bind<Image>(); Bind<GameObject>(); Debug.Log(Get<GameObject>("ddd").transform.position.x); } void Bind<T>() where T : UnityEngine.Object { //필터 해줄 타입 추가 if (typeof(T) != typeof(Button) && typeof(T) != typeof(TextMeshProUGUI) && typeof(T) != typeof(Image) && typeof(T) != typeof(GameObject)) return; if (typeof(T) == typeof(GameObject)) { Transform[] transforms = Util.FindChild<Transform>(transform, true); GameObject[] gameObjects = new GameObject[transforms.Length]; for (int i = 0; i < transforms.Length; i++) { gameObjects[i] = transforms[i].gameObject; } _componentDictionary.Add(typeof(GameObject), gameObjects); return; } T[] objects = Util.FindChild<T>(transform, true); _componentDictionary.Add(typeof(T), objects); } T Get<T>(string name) where T : UnityEngine.Object { UnityEngine.Object[] objects = null; if (_componentDictionary.TryGetValue(typeof(T), out objects) == false) return null; foreach (UnityEngine.Object obj in objects) { if (obj.name == name) return obj as T; } return null; } public static T[] FindChild<T>(UnityEngine.Transform transform, bool recursive = false) where T : UnityEngine.Object { if (transform == null) return null; if (recursive == false) { T[] dd = new T[transform.childCount]; for (int i = 0; i < transform.childCount; i++) { dd[i] = transform.GetChild(i).GetComponent<T>(); } return dd; } else { return transform.GetComponentsInChildren<T>(); } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
FindChild 사용시 원치 않은 것에 대한 컴포넌트 반환
안녕하세요 Util에서 FindChild를 정의하는 부분의 recursive가 true일 때 최상위 계층 gameobject 안에이름과 컴포넌트 타입은 같지만 계층이 다른? gameobject가 있다면ex)최상위 부모ㄴTest(name) - Text(컴포넌트) (1)ㄴTest2ㄴㄴTest(name) - Text(컴포넌트) (2)내가 찾고자 하는 오브젝트의 컴포넌트는 예제에서의 2번인데GetComponentsInChilderen에서 1번이 반환 될 수 있지 않나요?만약 그렇다면 해당 구조를 사용할때의 제약조건이같은 이름이면서 같은 컴포넌트를 갖는 오브젝트는 사용할 수 없다 정도일까요?(물론 같은이름이면서 같은 컴포넌트를 갖어야만하는 경우는 없을테지만요)
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
VS 툴팁 이전/다음 단축키 질문드립니다.
루키스님 안녕하세요?VS 단축키가 궁금해서 질문 올립니다.강의 10:56초툴팁 확인할 때 다음/이전 단축키가 무엇인가요?tab은 될때 있고 안될 때 있는 것 같아서요위아래 화살표는 자동완성 따라가서 잘 안되는 것 같아요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
인수 전달 관련 질문 있습니다!!
안녕하세요 선생님 강의 잘 듣고 있습니다!강의 초반에 bool[] visited를 클래스 내에서 필드로 선언할 수도 있지만, SearchAll 메서드 내에서 선언해서 DFS에 인수로 넘겨줄 수도 있다고 하셨는데요 이 때 ref 키워드를 쓰지 않았는데도 visited가 참조로 넘어가는 이유가배열 자체가 참조 형식이기 때문이 맞나욤? 만약 맞다면 배열이 아니라 int같은 값 형식을 메서드 내에서 선언해서 다른 메서드에 참조로 전달하려는 경우에는 ref를 써야하는 게 맞을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
랜덤메타(Sleep(1), Sleep(0), Yield())는 컨텍스트 스위칭이 없나요?
루키스님 안녕하세요?SpinLock, sleep/Yield, event, Mutex까지 잘 들었습니다. 제가 이해하기로는 SpinLock은 계속 돌기 때문에 컨텍스트 스위칭이 없어 (여기서의 예에서만) 빠르게 _num = 0 을 출력하고, event와 Mutex는 커널 단까지 컨텍스트 스위칭이 일어나 반복문이 조금만 많아도 _num = 0을 출력하는데 시간이 걸리는걸 볼 수 있었습니다. 그런데 궁금한건, 랜덤메타인 Sleep와 Yield도 쉬는 동안 커널 단까지 컨텍스트 스위칭이 일어날 것 같은데(쉬는 동안 다른 스레드에 메모리 <-> 레지스터 가 왔다 갔다 하므로) 여기서의 예에서는 _num이 빠르게 출력 되었습니다. 그래서 빠르게 출력된 이유가 랜덤메타는 컨텍스트 스위칭이 없어서인지, 아니면 컨텍스트 스위칭이 일어나는게 맞지만 여기서의 예에서만(간단한 예제이므로) 빠르게 _num= 0이 출력된 건지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
저는 왜 강의랑 다르게 될까요?
각 연결선에 has exit time도 모두 체크되어있는데 RUN의 Transitions 순서에는 WAIT으로 애니메이션이 실행되어야하는데 왜 저는 JUMP가 실행될까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
질문 물어본거 말고 다른거에 대한 답변이 AI로 달리는데...
유니티에서 bake를 해도 해당영역이 어디인지 보이지가 않고(NavmeshDisplay가 뜨지 않습니다)검색을 해도 도저히 못찾겠습니다...라고 질문했는데안녕하세요, 인프런 AI 인턴입니다.NavMesh가 제대로 표시되지 않을 때 문제 해결을 위하여 다음과 같은 몇 가지를 확인해 볼 수 있습니다.NavMesh Agent:해당 게임 오브젝트에 NavMesh Agent 컴포넌트가 추가되었는지 확인해주세요.NavMesh Bake 설정:Navigation 패널을 열고, Bake 탭에서 올바른 옵션으로 베이킹을 진행했는지 점검해보세요.레이어 설정:베이킹 과정에서 Navigation Static이 체크된 레이어를 대상으로 하고 있는지 확인래주세요.NavMesh Display 옵션:Unity 에디터 상단의 Navigation 창을 열고, Scene 뷰에서 ‘Show NavMesh’가 활성화되어 있는지 확인해보세요.에디터 버그 여부:때때로 Unity 에디터가 제대로 상태를 업데이트하지 못하는 경우가 있습니다. 에디터를 재시작하여 문제가 해결되는지 확인해보세요.위 단계를 모두 확인하셨는데도 문제가 해결되지 않으면, 유니티 환경 설정의 문제일 수 있으므로 유니티 커뮤니티나 포럼에 질문을 올려 도움을 요청하시는 것이 좋습니다.강좌에 대한 자세한 지원이 필요하시면, ‘문의하기’ 옵션을 통해 직접 문의하실 수도 있습니다.인프런 강의 내용과 관련하여 강의 FAQ를 참조하시면 도움을 받으실 수 있습니다.라고 답변이 달렸습니다.그리고 그에 대한 질문을 다시 답변으로 달았는데 답변이 달리지 않고,다른 질문들에도 이미 해보고 안된다고 물어보는 질문을 남겼는데 또 이거 해봤냐고 물어보는 AI 답변이 달리는데(그리고 코드와 자료를 첨부한 질문도 AI는 보지도 않고 다른 답변을 답니다)어떤식으로 질문해야 제대로된 답변을 받을수 있나요?
-
해결됨[C#/.NET 6.0]어서와, Blazor WebAssembly는 처음이지?
PostgreSQL 16 사용 중인데 복원시 에러 가 발생합니다.
학습 자료에 올라와있는 자료로 복원시 에러가 발생합니다.