묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Inven에서 Bind시 오류가 발생합니다
UI_Inven에서 Bind<GameObject>(typeof(GameObjects));를 할 때 오류가 떠서 breakpoint를 잡아보니 이 부분의 foreach문 에서 오류가 발생합니다 ArgumentException: GetComponent requires that the requested component 'GameObject' derives from MonoBehaviour or Component or is an interface. UnityEngine.GameObject.GetComponentsInChildren[T] (System.Boolean includeInactive) (at <4a31731933e0419ca5a995305014ad37>:0) UnityEngine.GameObject.GetComponentsInChildren[T] () (at <4a31731933e0419ca5a995305014ad37>:0) Util.FindChild[T] (UnityEngine.GameObject go, System.String name, System.Boolean recursive) (at Assets/Scripts/Utils/Util.cs:43) UI_Base.Bind[T] (System.Type type) (at Assets/Scripts/UI/UI_Base.cs:23) UI_Inven.Init () (at Assets/Scripts/UI/PopUp/UI_Inven.cs:21) UI_Inven.Start () (at Assets/Scripts/UI/PopUp/UI_Inven.cs:14) Bind할 때 GameObject가 아닌 Transform으로 Bind를 해보니 오류 없이 정상적으로 작동했습니다 해결은 했지만 강의에서는 GameObject를 받아서 잘 되었는데 저는 안 되는 건지 궁금해서 질문을 남겨봤습니다.. 강의랑 버젼이 달라서 그런 것인가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 관련 질문드립니다!
안녕하세요! 이제 막 파트3을 입문하려고 하는데 이전 파트2가 너무 어려워서 질문드립니다... 파트2를 수강하며 거의 무슨 내용인지도 모르고 클론 코딩만 한 거 같습니다ㅠㅠ 혹시 파트2를 완전히 숙지하지 못한 상태에서 파트3을 듣기에는 무리가 있는지 싶어 여쭈어봅니다!
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Func<Session> sessionFactory 사용에대해서 궁금합니다
Func가 리턴값이 하나인 함수를 캡슐화한다고 공식문서에서 찾아봤는데요 함수를 캡슐화한다는게 함수에서 매개변수로써 사용한다고 생각하면 될까요?
-
해결됨따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02
Grid 아래에 생성된 Node의 배치에 관한 질문입니다.
강사님께서 하신대로 Constraint를 flexible로 했는데 일렬로 정렬이 되어버렸습니다.전부 똑같이 한 것 같은데 왜 이렇게 될까요? flixble 대신에 컬럼을 지정하면 똑같은 모양으로 만들 수 있다는 것은 알고 있지만 이유를 알고 싶습니다.=> 찾았습니다. 전체확대를 안해서 그런거였네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
3D 멀티게임 조언
안녕하세요. 파트7을 다 끝내고 복습겸해서 파트4의 코드를 베이스로 삼아 간단한 3D 멀티플레이 게임을 만들어 보려고 하는데요 2D에서는 타일맵을 텍스트파일로 뽑아와서 플레이어 등이 갈 수 있는지 없는지를 0과 1의 구분으로 판단할 수 있었지만, 3D로 충돌처리를 해보려고 하니 맵을 어떻게 뽑아오고, 3D끼리는 어떻게 해야할지 모르겠습니다 ㅠ 구현해보고 싶은건 1. 플레이어를 원기둥으로 만들고 플레이어들끼리 서로 충돌해서 겹치지 못하도록 구현 2. 맵에 존재하는 건물(Box) 등 장애물 정보를 서버가 참조할 수 있도록 가지고 있게 하여 이동 패킷을 받고 해당 좌표에 갈 수 있는지 여부를 판단 일단 3D 맵은 어떻게 뽑아올 것이며, 서버 코드에서 3D 물체끼리 충돌 처리를 어떻게 해야할 것인지가 문제인데 이 부분은 어떻게 구현을 해야할지 조언 부탁드립니다 ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
여기 에서 이후에서 궁금 한것이 많아서 질문 드려요
1. 이동 등등 까지 해서 너무 좋은거같아요 이 이후에는 패킷 추가 하고 하는 방식으로 무기 선택 공격 피격 같은건서버에서 players list 에서 좌표 가지고 와서 피격 처리후 클라로 보내주는건가요? 아니면 클라에서 나 맞았어 라고 서버로 보내서 서버에선 Broadcast만 해주는건가요 ? 2. 또 강의 중에 들었던 프로토콜 버퍼 나 플랫 버퍼 같은 라이브러리를 이용해서 만들수도 있다고 하셧는데 지금 코드에서 수정 해서 만들어 봐도 될까요? 3. 지금은 서버 이긴한데 자체 컴퓨터 안에서만 돌아가는거 같아요. 노트북이나 쓰고있는 pc ip를 그냥 넣어서 다른 pc에서 접속으로 해도 될까요 수정이 많이 필요한가요?? 따로 강의는 없는거같아서 혼자 해보려고 해요.
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
안녕하세요 ui 직군에서 일하고 있는 수강생인데요
이제 1년을 채운 아트 ui직군 입니다 회사 내부 ui툴을 이용해 주로 작업을 진행하였고 몇몇 아이콘들을 담당했었습니다 추후 유니티를 사용하는 회사에서 일하고 싶은 마음이 있는데 아직 유니티를 현업에서 사용해본적은 없어서 저연차 인 ui 직군에게 요구되는 소양이 어떻게 될까요? 혹은 어떤겄들을 익히면 도움이 될까요 지금 회사에서는 너무 내부툴에만 익숙해지는 느낌이 강해서 공부를 하려 합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_sendQueue 질문입니다.
강의 마지막에 와서 뒤늦게 질문하는 느낌이 적지 않게 있는데, 재수강하면서도 여전히 긴가민가한 느낌이 있어서 질문드립니다. #_sendQueue에는 버퍼가 언제 쌓이는가. 쓰레드 A가 제일 처음으로 Send 함수를 호출했다. _sendQueue에 버퍼를 집어넣는다. _pendingList.Count ==0 이라 RegisterSend가 호출된다. 이후 RegisterSend 안에 있는 SendAsync 함수로 pendingList를 송신한다. 그런데 SendAsync 함수가 true 떠서, 즉 송신을 실패했다면? 쓰레드 A는 Lock을 풀고 사라지고, 이어서 다른 쓰레드 B가 Send를 호출했을 때 PendingList의 Count는 0이 아니므로, _ sendqueue에 버퍼만 집어넣고 쓰레드 B는 사라진다. 그 이후에 실패로 끝났던 SendAsync 함수가 콜백으로 OnSendCompleted 함수를 호출하면, _sendQueue에 쌓인 버퍼가 한꺼번에 송신된다. 이런 흐름이라고 이해하면 될까요? 만약 이게 맞다면 SendQueue는 SendAsync 가 실패로 끝났을 때를 위한 안전 장치라고 생각해도 될까요? 마침 질문글 답변 중에 이런 부분이 있기는데 한데 확신이 없네요. 멀티쓰레드보다는 비동기 네트워크 쪽과 관련이 있는데,SendAsync를 한다고 무조건 상대방이 받아준다는 보장이 없습니다.로컬 환경에서야 pending이 거~~의 대부분 false로 뜨고 바로 완료 되겠지만저 지구 반대편에 있는 사람이 접속했다면 이런저런 이유로SendAsync가 바로 완료되지 않고 pending = true로 설정될 확률도 높습니다.물론 말씀하신대로 Latency 뿐 아니라 Recv할게 너무 많아서 상대쪽에서 처리를 못해서 그럴 수도 있구요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
재귀적 락 허용
재귀적 락을 허용 하지 않았을때 ReaderWriterLock은 Write할때 Read가 같이 일어나면 Write하기 전에 있던 데이터와, Write한 후의 데이터가 공존해서 Read해가기 때문에, ReaderWriterLock을 사용 하는거 같은데(Read만 해갈때는 문제 없어서 Read는 공용으로 가능) 어떤 경우에 재귀적 락을 허용하는지 잘 모르겠습니다. 재귀적 락을 허용했을때는 한 쓰레드가 여러개의 데이터를 write,read할때 사용 되는건가요?
-
미해결
yolov5를 이용해서 hololens 앱 만드는 방법이 궁금합니다.
yolo 객체인식을 이용한 hololens 어플을 개발하고 싶은데, 방법을 잘 모르겠습니다. yolov5는 git에서 clone해서 실행이 완료되었는데, 이 프로젝트를 unity, visual studio와 연결할 수 있는 방법이 있는지 궁금합니다 !
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock 질문입니다
제가 혼자 만들어보면서 느꼈던 점은, "session에서 lock을 걸지 않고 recvbuffer의 writesegment를 가져오거나 DataSegment를 읽어올 때 lock을 걸면 최소한의 범위로 할 수 있을 것 같다" 입니다. 강사님께선 Session의 Send, RegisterRecv, OnRecvCompleted에 하나의 _lock 오브젝트로 전부 잠구셨는데 이렇게 되면 예를 들어 OnRecvCompleted를 호출해서 _lock 범위 내에서 처리하는 동안 Send를 호출하면 Send는 OcRecvCompleted가 끝날 때 까지 대기해야하는 상황이 발생하지않나라는 걱정이 조금 됩니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이번 강의에서 구현한 LoadJson 함수 문법 질문입니다
Loader LoadJson<Loader,Key,Value>(string path) where Loader : ILoader<Key,Value> { TextAsset textAsset = Managers.Resource.Load<TextAsset>($"Data/{path}"); return JsonUtility.FromJson<Loader>(textAsset.text); } 여기서 Loader << 이 부분이 헷갈려서 몇가지 질문 남깁니다. 1. Loader라는 타입을 따로 정의하지 않았는데, 이게 제네릭메소드 T 와 같은 의미이며, Loader라고 정의한거는 그냥 보기 편하게 T 를 Loader라고사용했다 보면 되는건가요 ? 2. LoadJson<Loader,Key,Value> 에서 Loader가 무슨의미인지 모르겠습니다. Loader에 대한 정보가 없으니, 정보를 얻기 위해 그냥 단순 : ILoader<Key,Value>를 상속받는 클래스를 저기에 입력하라는 의미로 받아드리면 될까요 ?
-
해결됨레트로의 유니티 C# 게임 프로그래밍 에센스
혹시 본 강의에서 Dictionary 나온 파트가 있을까요?
강사님 안녕하세요? 혹시 본 강의에서 Dictionary 나온 파트가 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Extension Method를 통해 사용한 AddUIEvent 함수의 인자 질문
안녕하세요 강의 14분의 GetButton((int)Buttons.PointButton).gameObject.AddUIEvent(OnButtonClicked);와 관련해 문의드립니다. 해당 코드의 AddUIEvent() 함수에 인자로 들어간OnButtionClicked는 public void OnButtonClicked(PointerEventData data) { ++_score; } 형태를 갖고 있습니다. AddUIEvent() 함수는 GameObject, Action<PointerEventData>, Define.UIEvent 자료형을 인자를 받아야 합니다. 여기서 첫번째 인자는 Extension Method 기능으로, 세번째 인자는 default 값으로 처리되었습니다. 두 번째 인자로 사용된OnButtionClicked 함수의 원형을 보면 매개변수로 PointerEventData 자료형의 값을 받아야 하지만 여기서는 단순히 함수명만 적었음에도 오류가 발생하지 않습니다. 이 이유는 AddUIEvent 함수를 통해 OnPonterClick()에서 OnClickHander.Invoke(eventData)로 PointerEventData를 보내주고 있으니 알아서 처리되는 것인가요? 감사합니다.
-
해결됨두고두고 써먹는 유니티 VR
6-6 포스트 프로세싱
포스트 프로세싱 하는 부분에서 GlobalVolume을 복제하고 Profile도 복제 한뒤에 색 변경하고 했는데 포스트 프로세싱이 작동을 안하네요 뭐가 문제일까요 유니티 버전은 2021.3.2 f 버전이고 초기 세팅은 동영상 보고 따라했습니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
사용 이유
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Resource 매니저를 사용하는게 코드를 관리하는데 용이 하다 하셨는데 관리가 용이해진다라는게 정확히 어떤건지 모르겠습니다. lapping을 함으로써 얻는 이점이 정확히 무엇인가요??
-
미해결따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 01
지그재그 타일생성 질문있습니다.
플레이어가 지나가고 타일을 떨구는 부분에서 StartCoroutine으로 호출하는 부분이 동작을 안하는것 같아서 질문드려요. 코드는 똑같이 따라 쓴것 같은데 어떤 부분을 확인 해야 할까요? 타일 설정이나 플레이어 태그도 추가 한 상태입니다 ㅜㅜ private void OnCollisionExit(Collision collision) { Debug.Log(collision.transform.tag.Equals("Player")); if( collision.transform.tag.Equals("Player") ) { StartCoroutine("FallDownAndRespawnTile"); } } private IEnumerable FallDownAndRespawnTile() { yield return new WaitForSeconds(0.1f); rigidbody.isKinematic = false; yield return new WaitForSeconds(falldownTime); rigidbody.isKinematic = true; if(tileSpawner != null){ tileSpawner.SpawnTile(this.transform); } else { gameObject.SetActive(false); } }
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Task 스크립트의 InitialSuccessValue에 대해서
Task 스크립트의 InitialSuccessValue에서 플레이어 레벨이나 스탯을 예로 설명해주셨는데, 만약 예를 들어주신대로 Task를 구성한다고 하면 InitialSuccessValue를 어떻게 구성해서 플레이어의 정보를 넘겨야할까요? 스스로 답이안나와서 질문해봅니다 ㅠㅠ
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
퀘스트 시스템 섹션 관련 질문드립니다
강의 잘듣고있습니다. 듣다가 궁금한게 생겨서 질문드립니다. 퀘스트 시스템 섹션에서 중간중간 확인작업(제대로 동작하는지) 없이 논스톱으로 작성해서 섹션 마지막쯤에 확인작업을 하는데, 보통 현업 개발자가 이런 퀘스트 시스템을 개발한다고 하면 마지막에 확인작업을 해도 될만큼 구조가 바로 잡히는건가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GameObject와 같이 Object를 상속받은 친구들은 new가 가능하고
AudioSource같이 Component를 상속받은 친구들은 new로 생성하는 것이 불가능한 건가요?