묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
3.:43 초 때부터 잘 안되는 것 같습니다...
코드도 정확히 다 따라했는데도 결과랑 다르게 나오네요 3:43초 쯔음에 소문자 대문자 구분 말 나오면서 뭔가 잘 안되고 있습니다 ㅠ
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Quest Cancel() 메소드
Quest.csComplete() 메소드에서 이벤트들을 초기화(해제)시키는데Cancel() 메소드에서는 이벤트들을 초기화를 안 하는 이유가 있을까요?OnRegister()에서task.onSuccessChanged += OnSuccessChanged;이벤트를 사용해서 Quest를 취소했을 때도 이벤트를 초기화해야 될 것 같다고 생각돼서 질문 남겼습니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
복잡한 3D 오브젝트의 움직임은 어떻게 표현해야할까요?
안녕하세요!3d에서 복잡한 오브젝트의 움직임은 어떻게 표현해야 할지 궁금해서 질문드립니다. 예를 들어 자전거체인이 있다고 한다면 페달을 밟을 경우 체인이 움직(체인 돌아가는)이는 모습을 표현하고 싶습니다. 그리고 체인에서 특정 위치에 물체가 닿으면 이벤트를 발생시키려고 합니다. 제가 생각했을 때는 2가지 방법이 있을 거라고 생각됩니다. 이런 방법 말고 어떤 방법이 있을지 너무 궁금합니다.! 보통 이런 복잡한 오브젝트를 자연스럽게 움직이게 할 때 어떻게 해야 할까요?제가생각하는 2가지 방법각각 체인오브젝트를 나누어 포지션과 로케이션을 직접 소스에서 변경하여 움직임을 표현한다.2d의 애니메이션 효과를 주는 것처럼 체인이 변경된 모습을 여러 개의 오브젝트로 만들어 순서대로 visible을 껐다켰다하는 방법으로 애니메이션을 준다.
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Task의 IsEqual
Quest System 구현 강의 마지막에 Quest System Test를 실습하던중 제대로 작동하지 않아 문의 드립니다. 디버그를 찍어봤는데 Task Script의 IsTarget() 함수에서 targets.Any(x=>x.IsEqual(target))부분에서 false가 된것이 원인이었습니다. 자세히 보니 QuestSystemTest에서 Target을 TaskTarget형태로 넘겨주고, TaskTarget의 IsEqual에서 TaskTarget형식으로 받아서 문제가 된것이었습니다. 이를 방지하기 위해 아래와 같이 TaskTarget인지를 먼저 검사해야된다고 생각하는데,혹시 제가 놓친부분이 있다면 알려주세요public override bool IsEqual(object target) { if(target.Equals(this))return true; string targetAsString = target as string; if (targetAsString == null) return false; return value == targetAsString; }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
단일 스레드로 처리할 경우 속도 문제점 있나요?
GameRoom을 하나의 스레드로 jobqueue를 사용해서 공유자원을 관리 하면 lock에서는 자유롭지만 하나의 스레드인 만큼 많은 처리를 해야할 경우 딜레이가 생길수도 있을거라고 생각하는데 lock을 타이트하게 거는 방법보다 하나의 스레드에서 처리하는게 속도가 더 빠른가요?하나의 스레드로 룸을 관리하니 결국 작업을 하나씩처리에 따른 속도 이슈가 없는지 궁굼합니다. 예를들어 갑자기 수많은 이용자가 들어와 엔터패킷을 탄다면 디비도 접근해야될때 이에 따른 실시간 처리 성능이 보장되는지 궁굽합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
3D 위치 동기화에 대한 질문
안녕하세요. 지금 파트 9까지 전부 수강하고 3D 게임을 제작하고 있습니다.현재 목표는 마우스로 우클릭를 하면 해당 좌표로 플레이어를 이동하는 것입니다.질문은 크게 두가지입니다. 현재는 클라이언트에서 마우스를 우클릭하면 Unity에서 제공하는 NavMesh를 통해 이동하고 있습니다. 그런데 서버에선Unity에서 제공하는 기능을 사용할 수 없기 때문에 따로 길 찾기 연산을 해야 할 것 같은데 이 부분이 감이 안 잡힙니다...서버에서 길 찾기를 어떤 방식으로 해야할까요?클라에서 추출된 NavMesh를 서버쪽에서는 활용할 수 없을까요?? 가령 SharpNav등을 통해서요!무지한 질문을 많이 하는데 항상 성심껏 대답해주셔서 감사합니다!
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
앞으로 강의 내용이 궁금합니다
안녕하세요 루키스님 강의 잘보고 있습니다게임 출시를 너무 하고 싶은데 좋은 강의 만들어 주셔서 감사합니다1 ui 핵심내용으로 분석 말고도 루키스님은어떻게 제작 하는지 ui강의 부탁드려도 되나요현재 나와있는 강의로 활용해서 적용하기 어려울거 같아서요 혹시 이번 초반에 바닥에 까는 스킬말고 공격이나 여러가지 구현하는건 없나요??이거 또한 스킬은 어떻게 활용할지 궁금합니다2 이번 강의 듣고 아직 많이 부족하지만싱글게임 만들어서 운영 해보고 싶습니다 이번 1~6월까지 강의 듣고 싱글게임 만들고 운영 하는거 지장없는지 걱정됩니다강의를 보고 있으면 지금 1월-6월 까지 강의 보다는7월부터 온라인 강의를 더 중요시 생각하시는거같아서요 이번 강의를 어느 수준까지 마무리 되는지,강의를 다 듣고 싱글게임 만들고 수입창출 수준까지 배울 수 있는지너무 궁금합니다
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
강의대로 따라했는데 NullReferenceException 에러 발생하시는 분들 (section 2 - 스킬 수정)
강의 내용대로 잘 따라했는데 bear가 공격 애니메이션을 실행하지 않고, 다음과 같이 에러 메세지가 뜨는 분들을 위해 해결방법 공유합니다.NullReferenceException: Object reference not set to an instance of an object Creature.UpdateSkill () (at Assets/@Scripts/Controllers/Creature/Creature.cs:199) Monster.UpdateSkill () (at Assets/@Scripts/Controllers/Creature/Monster.cs:126) Creature+<CoUpdateAI>d__85.MoveNext () (at Assets/@Scripts/Controllers/Creature/Creature.cs:161) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at /Users/bokken/build/output/unity/unity/Runtime/Export/Scripting/Coroutines.cs:17)MonsterData.csv에서 '곰'이 있는 마지막 줄에서 10004를 10001로 수정하시고 다시 ParselExcel 실행하신 뒤 실행하면 정상 동작합니다. 나중에 추가될 애니메이션이 이 시점에는 아직 없는 듯 하네요.한참 헤매다가 겨우 해결했습니다 ^^;;
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
실전예제 UI 자료
UI 수업자료 다운받아서 사용하려는데 정확하게 방법을 모르겠네요 ㅠ 압축을 해제하면 폴더만 쭉나와서 수업자료를 어떻게 사용해야 하는건가요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
원자성
안녕하세요.처음 interlocked 없이 for문을 10,000회로 두고number를 ++하거나 --했을 때 0 이 잘 출력됐는데,이 땐 그냥 반복 횟수가 적어서 원자성 문제가 발생되지 않았던 건가요?
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
Spine animation에서 Sprite Animation으로 변경가능여부
안녕하세요. 루키스님 열심히 강의 따라가며 게임 개발에 매진하고 있습니다.다름아니라 spine animation말고 sprite animation을 적용해보려고 하는데요. creature.cs 스크립트에서 // Spine SkeletonAnim.skeletonDataAsset = Managers.Resource.Load<SkeletonDataAsset>(CreatureData.SkeletonDataID); 이렇게 해서 json에서 데이터를 load하잖아요? spine-unity 라이브러리가 별도로 있는 것 같은데, sprite도 이에 상응하는 라이브러리?나 방법이 있을까요?ㅠㅠ sprite자원들이 있는데 이걸 갖고 본 게임 처럼 반영을 하고 싶은데 걸리는게 많네요 ㅠㅠ
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
PacketHandler.cs의 PlayerInfo info 변수 질문
PlayerInfo info 변수를 어떻게 쓰는지 모르겠습니다.밑의 코드에서 쓰이지 않았고 달리 사용하는 부분이 없어보이는데아니면 위의 코드만으로 변화하는 부분이 있는건지 잘모르겠습니다. 밑의 코드 - 두 번째 주석 밑의 코드들위의 코드 - 첫 번째 주석 밑의 코드들
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
2강 Database에 리플렉션에 대해 질문입니다.
2강에서 SetID 메소드에서 id필드의 값을 설정하는 부분을 리플렉션을 통해서 구현한 것은 private의 필드의 은닉성을 지키기 위해서의 이유 하나 뿐인가요?
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
스크립터블 오브젝트
안녕하세요 수업 도중에 한 가지 질문이 생겨서 글 올립니다.퀘스트를 모듈식으로 조립하기 위해 스크립터블 오브젝트를 많이 사용하던데, 스크립터블 오브젝트는 빌드에 포함되는 에셋 형태이기에, 빌드 용량이 커지게 되고, 사용자가 접근이 가능한 문제가 있다고 알고 있는데, 혹시 제가 이 부분에 대해서 잘못 알고 있는 것일까요?만약 문제가 맞다면, 스크립터블 오브젝트말고 어떤 식으로 구조를 짜는게 좋을까요?
-
해결됨두고두고 써먹는 유니티 VR
혹시 유니티 빌드 없이 플레이 했을때 오큘러스 퀘스트2로 가능한가요?
방법도 모르고, 오큘러스 넘 복잡해서 자세히 알려주셨으면 합니다 ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
6:00
릴리즈 모드로 해도 디버그 모드랑 동일하게 출력되는데 뭐가 문제인가요? using System.Threading;namespace ServerCore{ internal class Program { // 전역이기 때문에 쓰레드들이 동시에 접근 가능 static bool _stop = false; static void ThreadMain() { Console.WriteLine("쓰레드 시작!"); while(_stop == false) { // 누군가가 stop 신호를 해주기를 기다린다 } Console.WriteLine("쓰레드 종료!"); } static void Main(string[] args) { // Thread t = new Thread(ThreadMain); Task tt = new Task(ThreadMain); tt.Start(); // 1초 존야 후 다시 실행 Thread.Sleep(1000); _stop = true; Console.WriteLine("stop 호출"); Console.WriteLine("종료 대기중"); tt.Wait(); // t.Join(); 과 동일 Console.WriteLine("종료 성공"); } }
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
인벤토리 저장전에 클리어
안녕하세요세이브 하기전에 데이터 클리어 하면 저장 가능한건가요?...헷갈리네요
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Task 예시
테스크에 Count Task와 Set Task를 예로 들어주셨는데 두개의 차이점을 모르겠습니다
-
미해결[Rookiss 켠김에 출시까지] MMO Lab 1기 <유니티 방치형 키우기 게임>
LoadAllAsync에서 result.PrimaryKey.Contains(".sprite")) 부분을 안타는데 왜그럴까요?
public void LoadAllAsync<T>(string label, Action<string, int, int> callback) where T : Object { var opHandle = Addressables.LoadResourceLocationsAsync(label, typeof(T)); opHandle.Completed += (op) => { int loadCount = 0; int totalCount = op.Result.Count; foreach (var result in op.Result) { if (result.PrimaryKey.Contains(".sprite")) { LoadAsync<Sprite>(result.PrimaryKey, (obj) => { loadCount++; callback?.Invoke(result.PrimaryKey, loadCount, totalCount); }); } else { LoadAsync<T>(result.PrimaryKey, (obj) => { loadCount++; callback?.Invoke(result.PrimaryKey, loadCount, totalCount); }); } } }; }해당 함수는 이렇게 작성되어있고 .sprite 로 보아 확장자를 .sprite 를 찾는것같은데 어드레서블 그룹에는 .png 로 되어있습니다 혹시 이것때문에 그러는걸까요?
-
미해결따라하면서 배우는 고박사의 2D 플랫포머 게임 제작
통과하는 발판(OneWay)을 움직이는 발판을 적용할 방법은 없나요
Platform_Moving에 Platform Effector Expention 스크립트를 적용해봤는데 올라타는것과 밑에서 올라타는 기능은 가능하나 움직이는동한 플레이어 오브젝트를 자식으로옮겨 플랫폼에 고정하는 기능은 작동이 안되네요 방법이 없을까요