묻고 답해요
145만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
안녕하세요 마지막 버전 프로젝트는
안녕하세요 마지막 프로젝트는 게임이 실행이 안되는거같은데아직 미완성이라 그런건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티짱의 물리가 이상하게 설정된것같습니다.
제 하이라키를 첨부해봤습니다. 유니티짱의 y축을 프리징하면 정상적으로 작동하는것처럼 보이지만 근본적인 해결책은 아닌것같습니다. 유니티짱의 하이라키와 플레인의 하이라키 스샷을 찍어봤습니다. ps. 혹시 몰라서 cube의 하이라키도 체크했습니다 cube에는 is trigger를 체크했는데 강의의 내용과 일치하는지 궁금합니다
-
미해결유니티 프로그래머 현업자의 기본 스킬들
RectTransform 부분 아직도 싱크 문제 있네요
4분즈음부터 11분 20초까지 영상과 내용이 안맞습니다
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
섹션2 매니저 강의 중 프로퍼티로 인스턴스 리턴하는 부분 질문
싱글턴 구현을 위해 public static Managers Instance 프로퍼티를 만들고 Managers로 리턴하는것 까진 이해했습니다.근데, 다른 매니저 구현하는 부분에서DataManager _data = new DataManager(); 로인스턴스화 한 후,public static DataManager Data { get return Instance?._data;}}프로퍼티를 통해 리턴하는 부분이 이해가 안됩니다.강의에서는 싱글턴으로 구현된 매니저에 다른 매니저들을 붙이는 거라고 말씀하셨는데, 리턴문이 이해가 안되네요.?. 는 널체크고 사실상 Instance._data; 로 해도 실행은 잘되는것 같아서 저것만 가지고 질문을 드리자면Data 프로퍼티를 호출하면 Instance 프로퍼티에 _data 에 담긴 인스턴스를 입력(set)하고 리턴을 한다는건지..(근데 그와중에 Instance 프로퍼티에 set은 또 없고..)Instance 프로퍼티에서 get해서 가져오고 뭔가?를 해서 인스턴스를 리턴하는거같은데, 구문이 이해가 안가네요.. (문법실력이 부족한거같아서 구글링을 아무리해도 찾을수도 없네요 ㅜㅜ)보통 이렇게 점을 찍어서 하는건 클래스 내부 요소를 요청하거나 메서드 체이닝을 하거나 할 때 쓰는거 아닌가 싶은데,Instance라는 프로퍼티에 점을 찍은후 생성한 _data 인스턴스를 이어서 코딩하는건 도저히 이해가 안가네요 ㅠㅠ어떤부분을 제가 공부하면 이해가 잘될까요. 아 그리고 추가 질문 하나더 드리자면.. Data 프로퍼티를 통해 Instance를 거쳐 리턴되는 값은 DataManager 형식일텐데, Instance는 Managers 형식인데 어떻게 저렇게 리턴이 가능한건가요? 그냥 클래스 인스턴스끼리는 된다고 생각하면되나요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
transform.position과 transform.Translate 의 차이가 뭔가요??
기능의 차이는 없다고 알고 있는데 그냥 사용하고 싶은거 쓰는건지 특정 코드를 써야하는 이유가 있는건지 궁금합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
텍스쳐에서 스프라이트로 변경하는 것 관련 질문입나디
젬 떨구기 강좌에서 png를 adrressable로 긁어올 때 png 대신 내부의 이름으로 읽는다는 부분을 이해했습니다.궁금한 점은 스프라이트 시트처럼 특정 텍스쳐 안의 다수의 스프라이트가 존재할 때 그 이름 별로 로드할 수 있는 방법이 있는 지 입니다.key값으로 걸어보니 스프라이트 시트의 이름으로 걸리고 하부 아이템들의 이름을 탐색할 방법을 못찾아서 일단은 임시로 리소스 폴더에 보관후 리소스 loadAll을 하는 중인데 addressable로도 관리할 방법이 있는 지 알고 싶습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_pending 을 _pendingList.Count == 0으로 대체한 것에 대한 질문입니다
_pending을 없애고 _pendingList.Cont == 0 으로 대체하셨는데pendingList.Count가 0일 때 1개의 쓰레드가 통과되고, 통과한 쓰레드가 _pendingList에 값을 추가하기 전에 또 다른 쓰레드가 _pendingList.Count == 0인가에 대한 if문에 도착하면, 그 쓰레드 또한 _pendingList.Count == 0을 무사통과하게 되지 않나요??혹시 놓치고 있는 부분이 있나요?? 항상 감사합니다~!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
유니티로 메타버스 멀티플레이를 구현해보고싶습니다!
안녕하세요 서버에대한 지식이 전무했는데 루키스님의 강의를 들으며 많은 배움을 얻어가고있습니다.저는 유니티로 메타버스 멀티플레이까지 구현을 해보는게 목표입니다.저 혼자 알아보면서 포톤pun , fusion 같이 이미만들어진 서비스들을 알게되었습니다.메타버스 멀티플레이구현이 목표라면 서버를 만들기보다는 포톤같이 이미 만들어진 서비스를 이용하는게 좋을까요 ??물론 두 방법 모두 저에게는 어렵고 공부가 많이 필요한 상황인데 루키스님 강의를 들으며 많은 도움을 얻어가고 있어서 감사합니다
-
미해결유니티 Addressable 을 이용한 패치 시스템 구현
카탈로그 질문..
제가 잘못해서 previous build를 안하고 default build를 해서지금 이렇게 됐고, 앱의 버전은 1.0.7인데, 이 버전의 setting.json은이거인데요...제가 이걸 누르고 previous build를 하고..aws s3 서버에 덮어 씌우기 했는데도...업데이트가 되지 않아요...뭐가 문제인걸까요?...어떻게 해결하면 될까요?ㅠ... 그리고 1.0.1~1.0.6 버전에는 예전 카탈로그를 썼는데,default build 해서 최신 카탈로그로 하고, 1.0.7 버전으로 앱 빌드 하면.1.0.7 버전의 최신 카탈로그로 업데이트 되는거 맞나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
쓰레드 생성 부분
저희 강의에서 멀티쓰레드를 사용하는 걸로 알고 있는데 쓰레드를 생성하는 부분이 정확히 어디 부분인가요..?해당 부분에서 Connect 될 때 필요하다면 count의 개수만큼 쓰레드를 생성하는 걸까요..?혹시 아니라면 어디 부분일까요... 도저히 못 찾겠어서 질문드립니다..!
-
미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
TitleScene 시작 시 StartText에 스크립트가 없습니다.
프로젝트 다운 받고 실행해보니 몇개의 오브젝트에 스크립트가 없습니다.제가 사용하는 유니티 버전이 2022.3.0인데 혹시 버전 문제인지,공유하실 때 제거가 된건지 궁금합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
에셋 출처 질문
선생님 안녕하세요. 강의 너무 잘듣고 있습니다.다름이 아니라, 실제로 간단하게 출시를 해보려고 하는데 강의에서 사용하신 플레이어의 EgoSword와 다른 파티클 에셋들이 유니티 에셋스토어에서 구입 후 사용하신 에셋이라면 어떤 에셋인지 궁금해서 질문을 드리게 되었습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
DataManager class 내의 Dictionary 에 관해 질문드립니다
c#문법에 익숙치 않아 차근차근 공부중인데이해가 잘 되지 않는 부분이 있어 질문드립니다DataManager class내의 Dictionary선언부분에 보면public Dictionary<int, Stat> StatDict { get; private set; } = new Dictionary<int, Stat>(); 라고 되어있는데 여기서 new Dictionary<int, Stat>(); 이부분이 반드시 필요한 건가요?Init() 에서 MakeDict 매소드 안에서 새로운 Dictionary를 할당받고 있는부분이 있어 제가 모르는 부분이 있는것같아 질문드립니다
-
해결됨두고두고 써먹는 유니티 VR
Player의 유무
안녕하세요 선생님!수업을 정말 잘 듣고 있습니다.감사합니다.다름이 아니라 제가 따로 간단한 vr게임을 만드는중인데 궁금한 점이 생겨 질문드립니다.저는 player를 넣고서 특정 오브젝트에 부딪치면 hp깎이는 식으로 게임을 만드는중인데요!만약 player를 살린다면 player의 hierarchy에서의 위치를 어디다가 배치해야 할 지 알수 있을까요??..Xr origin밑에 player를 자식으로 두고그 자식에 camera offset을 배치했는데이렇게 하면 플레이했을때 방향키를 누르면 player의 움직임이 컨트롤러와의 움직임과 독립적으로 따로 움직이게 되는데 어떻게 구성해야 할 지 조언을 얻을수있을까요??
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
저작권 관련 질문이 있습니다.
교육용 프로그램을 만드려고 하는데 일부 버튼 이미지만 그대로 사용해도 될까요?프로그램은 전혀 다른 형태로 만들 예정입니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
apk 로 빌드해서 폰에 넣으면 실행이 안되네요.
아직 완성본이 아니어서 그런것 같습니다만, 안드로이드로 빌드했을 때, 타이틀 화면에서 멈추고, 실행이 안됩니다. 참고Addressable Labels 는 모두 설정되어 있으며, Build & Load Paths 는 Local 로 되어 있습니다.Addressable content successfully built (duration : 0:00:04.284)
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
xml 로드 문제
안녕하세요.코딩을 시작한 지 얼마 안 되어 공부 겸 실제 게임 발매를 경험하기 위해 강의를 수강한 학생입니다.잘 따라가던 도중에 '젬 떨구기' 강의 부분에서 xml 파일이 로드되지 않는 문제가 발생하였는데요. 이를 수정하기 위해 구글링부터 시작해서 챗GPT4에 물어보는 등 여러 시도를 해보았으나, 도저히 저 혼자 힘으로는 해결이 어려워 고심 끝에 질문 글을 남기게 되었습니다. Addressables Groups에는 강사님이 하신 것과 동일하게 프리팹, xml, png 파일 등을 등록하고 Label을 PreLoad로 설정한 상태이고, 코드는 제가 쓴 코드가 혹시 문제가 있나 싶어 강의 자료로 첨부해 두신 코드로 덮어씌워봤는데도 아래와 같이 xml 파일 로드 시 null이 반환되는 상태입니다. 현재 진행 중인 프로젝트가 문제가 있을까 싶어 새 프로젝트를 만든 후 폴더 경로부터 시작해서 모든 과정들을 다시 진행해 보았으나 동일한 에러가 발생하더군요. 되도록이면 제 스스로 이 문제를 해결해 보려고 했지만 유니티란 툴도 처음이고, 코드를 배운 것도 이번이 처음인지라 들이는 시간에 비해 도저히 진척이 없어서 염치 불구하고 이렇게 글 남깁니다. 바쁘시겠지만 확인 부탁 드리겠습니다.좋은 강의 만들어 주셔서 감사합니다. NullReferenceException: Object reference not set to an instance of an objectDataManager.LoadXml[Loader,Key,Item] (System.String name) (at Assets/@Scripts/Managers/Core/DataManager.cs:43)DataManager.Init () (at Assets/@Scripts/Managers/Core/DataManager.cs:21)GameScene.StartLoaded () (at Assets/@Scripts/Scenes/GameScene.cs:22)GameScene.<Start>b__0_0 (System.String key, System.Int32 count, System.Int32 totalCount) (at Assets/@Scripts/Scenes/GameScene.cs:13)ResourceManager+<>c__DisplayClass5_2`1[T].<LoadAllAsync>b__1 (T obj) (at Assets/@Scripts/Managers/Core/ResourceManager.cs:86)ResourceManager+<>c__DisplayClass4_0`1[T].<LoadAsync>b__0 (UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationHandle`1[TObject] op) (at Assets/@Scripts/Managers/Core/ResourceManager.cs:69)DelegateList`1[T].Invoke (T res) (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelegateList.cs:75)UnityEngine.Debug:LogException(Exception)DelegateList`1:Invoke(AsyncOperationHandle`1) (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelegateList.cs:79)UnityEngine.ResourceManagement.Util.DelayedActionManager:LateUpdate() (at ./Library/PackageCache/com.unity.addressables@1.21.12/Runtime/ResourceManager/Util/DelayedActionManager.cs:162)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
테스트 메모리 릭킹 관련 질문
아래와 같은 테스트를 진행했고 이는 강의코드에도 유사하게 발생할 것으로 보입니다. 서버 컨텐츠단에서 패킷 모아 보내기 기능까지 구현500개의 더미 클라이언트가 S_Chat 을 송신서버는 비주얼 스튜디오에서 디버그모드로 구동더미클라이언트는 exe모드로 실행과 종료를 반복 이때 클라이언트의 connect, disconnect가 잦아지면서 서버의 메모리 점유율이 내려가지 않는 현상이 궁금해서 그러는 것이지, 고쳐달라고 떼쓰는게 아닙니다. 이런 현상은 강의 코드에서도 발생할 것으로 보이는데요. 혹시 알고 계신 이유가있다면 그것만 말씀해주시면 됩니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
테스트 중 메모리 릭킹 현상 질문
테스트를 하다 릭킹(leaking) 현상이 생기는게 궁금해서 여쭙습니다.테스트 과정서버 컨텐츠단에서 0.15~0.25초 단위로 패킷을 모아보내는 기능까지 구현더미 클라이언트에서 500명이 C_Chat 패킷을 보내도록 구현서버만 Visual Studio의 디버그 모드로 실행 (메모리 진단을 위해)클라이언트는 빌드된 exe파일로 접속클라이언트만 반복적으로 종료하고 다시 실행이때 서버쪽 메모리 점유율이 올라가기만 합니다.Disconnect() 가 분명히 불리고 소캣을 Clean(), Shutdown()을 하는데 (심지어 Dispose()도 넣음 다 돌아가는거 확인)서버 메모리 점유율이 260메가 막 그러네요, 아무리 오래 두고 봐도 CG가 정리할 생각을 안해요 ㅠㅠ다 깔끔하게 정리할 욕심은 없습니다. 다만 릭킹은 안좋아보여서요.이거 이유가 있을까요? 참고로 리스너쪽 대기 큐 150 이상으로 설정해야 테스트가 잘됐습니다, (강의시 backlog 인자)
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Projectile이 _lifeTime뒤에 사라지지 않는데 어떻게 처리하면 좋을까요...?
게임을 실행했을 때, ProjectileController의 _lifeTime(10초) 뒤에 투사체가 없어지지 않아서 SkillController에서 Despawn 하는 부분에 breakpoint를 잡고 실행해봤습니다.확인해보니 ObjectManager에서 type이 아래 사진처럼 SkillController로 잡히더라구요.그래서 else if (typeof(T).IsSubclassOf(typeof(SkillController))) { ... }조건문에 들어가지 않고 Despawn 함수가 끝나는거 같은데 어떻게 수정하면 좋을까요...?처음엔 SkillController에서 CoDestroy함수를 아래와 같이 바꿔볼까 했는데IEnumerator CoDestroy(float delaySeconds) { yield return new WaitForSeconds(delaySeconds); if (this.IsValid()) { Managers.Object.Despawn(this as ProjectileController); } }나중에 n초 뒤에 사라지는 장판형 스킬을 관리하는 다른 Controller를 만들어야 한다고 한다면 위와 같은 코드처럼 강제로 캐스팅 하면 안될거같고,ObjectManager의 Despawn 함수에else if (type == typeof(ProjectileController)) { Projectiles.Remove(obj as ProjectileController); Managers.Resource.Destroy(obj.gameObject); }위와 같은 코드를 추가한다고 해도 어짜피 type == SkillController 라서 저 조건에도 맞지 않더라구요ㅠㅠ 어떻게 고칠지 감이 안잡혀서 질문 드립니다!