묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
강의 내용에 대해서 궁금한점이 있습니다.
안녕하세요. 질문이 있어서 글을 남기게 되었습니다.루키스님의 지난 강의 유니티로 MMORPG만들기에서 데이터베이스를 mssql, entity framework로 만드셨는데 이번에도 같은 것으로 진행 하는것인지 궁금합니다.인디, 또는 개인개발자를 대상으로 진행하는 교육인 만큼 리눅스 서버에서 돌아가는 mysql, 또는 mariaDB와 같은 비용이 최소화되는 환경으로 진행되었으면 하는데 여기에 대해서 답변 주실 수 있을까요?이미 강의를 구입하였는데 저 또 한 개인개발을 목표로 하고 있어서 강의내용에 대해서 궁금합니다.!!
-
해결됨무작정 따라하기! 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는 보지도 않고 다른 답변을 답니다)어떤식으로 질문해야 제대로된 답변을 받을수 있나요?