묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?
3D MMO 중에서 소수점 단위로 이동하고 모든 방향을 바라볼 수 있는 게임은 스킬 판정을 어떻게 하면 좋을까요?어려운 점은 모든 방향을 볼 수 있는 캐릭가 스킬을 사용하면 스킬 범위는 float 형태로 나와야 한다는 것 인데요.기존 강의에서 배운 맵 좌표는 int로 관리할텐데, 3D 게임은 오브젝트 위치 정보를 float 형태로 관리하기 때문에 이 둘을 동기화 하는 방법을 떠올리는게 어려웠습니다. 루키스님 질의응답과 상상을 통해서 두 가지 방법을 생각해봤습니다.(맵에 높이는 없이 x, y 축만 생각하겠습니다.)첫 번째 방법서버의 맵은 2D 타일 맵(int 좌표)으로 관리하면서 캐릭터는 정밀한 위치(float 좌표)를 가지고 있어, 스킬 히트 판단 시 정밀 판단 로직을 추가한다.아래 그림처럼 회색 캐릭터의 정확한 위치는 캐릭터가 가지고 있으며, 점유하고 있는 셀(분홍색 박스 4개)은 서버 맵에 저장합니다.현재 서버 맵에 (0,0), (1,0), (0,1), (1,1)에는 회색 캐릭터가 (3,2)에는 빨간색 캐릭터가 있습니다. 빨간 캐릭터가 방사형 or 투사체를 발사했을 때 서버는 서버는 서버 맵에서 스킬 효과 범위에 들어갈 것 같은 예상 후보가 있는지 탐색합니다.투사체가 닿는 범위인 (1,0), (2,0), (3,0), (2,1), (3,1) 을 대상으로 예상 후보 탐색예상 후보 셀에 포함된 캐릭터가 있는지 확인하고 해당 캐릭터가 실제 효과 범위에 들어가는지 판단합니다.(1,0) 셀에 회색 캐릭터가 있을 수 있으니 스킬 효과 범위 min < 캐릭터 중심점 기반 히트박스 < 스킬 효과 범위 max 인지 판단두 번째 방법캐릭터가 점유하는 셀을 더 작게 쪼개서 캐릭터 히트 박스나 조이스틱 처럼 살짝 이동할 수도 있고, 전방향 이동에 위화감이 없도록 구현 현업에서는 어떻게 구현하는지 궁금합니다!
-
해결됨두고두고 써먹는 유니티 VR
ray가 컨트롤러에서 나가는 부분에 대한 질문
광선이 컨트롤러 헤드 부분에 딱 붙어서 안나가고 게임뷰에서 광선이 조금만 보이는데 이런경우 어디를 수정해야 하나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
재귀호출? 오류나는데 왜 이래요 ?
StackOverflowException: The requested operation caused a stack overflow.Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25)Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) 계속 이렇게 뜨는데 어떻게 해야 하죠
-
해결됨[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
42.Boomb 에서 진행 못함요
저는 전부터 꾸준히 질문을 계속해 왔었던 사람인데요개발 초보이긴 하지만 카드 셀렉터 문제도 스스로 결국 고치고 잘 따라 왔습니다. 하지만 또 문제가 생겼습니다. 39강 부터 입니다저는 개발자님의 에셋 5개를 가지고 있는 데요개발자님의 오브젝트를 보면서 Treasure 이미지는 보이지 않아 그냥 대체 하는 것으로 메모 하고 스크립트 작성하고 넘어왔습니다하지만 42강 부터 게임 오브젝트 미리 조합하셔서 다 만드셨기에 초보자 로선 스스로 에셋들을 조합해서 폭탄 연출 만드는 것은 조금 버겁습니다.혹시 폭탄 연출 오브젝트를 어떻게 만드셨는지, 어떤 에셋에 있는 것을 활용하여 만드셨는 지 방법을 자세히 알려주실 수 있으신가요?
-
해결됨두고두고 써먹는 유니티 VR
ray 가 하나만 나가는데 문제가 뭘까요
controller tracking 설정까지 끝냈는데, 핑크색상으로 ray가 두개가 안나가고 하나만 나가는데 문제가 뭘까요?
-
미해결유니티 Addressable 을 이용한 패치 시스템 구현
Unity6로 작업 중 수업과 다른 내용 및 이슈 공유
올라온지 기간이 많이 지난 강의이긴하지만 아직 보는 분들이 꽤 있는거 같아 Unity6로 테스트 해보는 중에 생겼던 이슈 공유 드립니다. Addressable Settings 에서 Disable Catalog Update On Startup 옵션Catalog - Only update catalogs manually 로 변경 됨. Unity6로 프로젝트 생성시 처음에 Allow download over HTTP 옵션이 해제 되어있더라구요. 이 때문에 파일을 제대로 읽어오지 못해 ResourceManager Exception이 뜹니다.Project Settings - Player - Other Settings 에서 Allow download over HTTP 옵션을 Always allowed로 바꾸시면 됩니다. 추가 : Editor환경에서 서버 데이터를 받아서 플레이 하는 법Addressables Groups window 에서 Play Mode Script 를 Use Existing Build (Andorid)로 바꾸시면 됩니다.
-
미해결[Unity] 함께 만들어가는 방치형 게임 개발
구현 문의
안녕하세요. 강의를 보면서 렌더 텍스처에 대해 알게되었습니다. 다름이 아니라 렌더 텍스처를 사용해서 캐릭터들을 보여주는 방법도 있는데 새로운 Scene을 만들어서 그 Scene에 보여줘도 되는건가요? 혹시 렌더 텍스처를 활용해 구현하면 장점이 있나요?
-
해결됨[Unity] 멀티플레이 게임 필수 기능 구현 - 서버 & 데이터 관리까지!
유니티6버전사용해야하나요?
현재 유니티 버전에서 사용하고싶은데 반드시유니티6버전을 사용해야하나요?유니티 이전버전에서 URP를 설치해서 사용해도 되는지 궁금합니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
다운 받은 자료 용량 관련 문의입니다.
맨처음 받은 자료 깃 스테이지에 올리려면 '큰 파일 감지됨' 으로 나오는데, 세팅 방법에 대한 문의.
-
해결됨AI 시대의 혁신적인 게임 개발 입문 with Unity6
유니티 비법서
안녕하세요! 강의를 잘 듣고 있습니다.강의 중 '유니티 비법서' 문서가 나오는데, 이건 어디서 다운 받을 수 있나요?인프런에서 처음 강의를 듣는 것이여서, 인터페이스가 아직 낯섭니다 ㅠㅠ 친절히 알려주시면 감사하겠습니다.
-
해결됨두고두고 써먹는 유니티 VR
이미 있는 씬에 VR 환경 얹어서 세팅
안녕하세요.unity 내에서 3d모델링 씬 위에 VR환경 얹어서 사용하려고 하고 있습니다.3d모델링 씬 에다가 일단 toolkit에 있는 starter assets으로 teleportation 모델을 구현해보려고 하고 있는데,이걸 사용하면 VR을 play 했을때 컨트롤러가 깨지거나 teleportation이 안되는 문제가 생깁니다.이럴땐 보통 어떻게 해결해야하는지 여쭤볼 수 있을까요?
-
미해결[Unity] 함께 만들어가는 방치형 게임 개발
안녕하세요! 게임개발 협업관련해서 질문드립니다!
게임 개발 작업을 할 때 2인이서 협업을 하려면 현업에서는 어떤방식으로 협업을 하나요?
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
21. 화염구에서 CardSelector 문제
그동안 수업을 정말 열심히 가르쳐주셔서 아주 즐겁게 들었습니다. 감사드립니다.하지만 제가 어디서부터 무언가를 빠뜨렸는지 이런 오류가 생겼는데 이걸 어떻게 해결해야 할지 모르겠습니다.NullReferenceException: Object reference not set to an instance of an objectCardSelector.Initalize () (at Assets/00.scripts/UI/CardSelector.cs:17)Base_Canvas.SelectCard () (at Assets/00.scripts/UI/Base_Canvas.cs:73)Base_Canvas.Start () (at Assets/00.scripts/UI/Base_Canvas.cs:25)현재 이런 오류가 나고 있습니다. 실행하면 낙뢰 카드만 3개가 나오고 눌러도 진행이 안됩니다.Base_Canvas에서private void Start() 여기서 SelectCard();이 부분을 지우면 실행은 됩니다만, 이렇게 해결하는 것은 아닌 것 같아서 질문합니다.저는 21.화염구 강의를 듣고 있던 사람인데,그동안 열심히 오류를 해결해왔지만 이번엔 어떻게 해결해야할지 모르겠습니다.
-
해결됨두고두고 써먹는 유니티 VR
이미 있는 씬에 VR 환경 얹어서 세팅
안녕하세요지금 VR을 구현하려는 유니티 내의 씬(3d모델)이 있고, 모델 속에서 걸어다니는 것처럼 VR을 구현하려고 하고 있습니다.VR환경 세팅 후에 따로 prefab으로 설정해서 씬 위에 얹는 방식을 해보려고 했는데, 이 방식이 안되서 .. 혹시 어떤 방식이 있는지 여쭤볼 수 있을까요?
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
19. 스킬 구슬 (카드 별표 UI 구현) -> 31. HP 패시브때 해결됩니다.
HP 패시브 10:35때부터 별표 문제에 대한 언급이 들어갑니다.그리고 1분 정도 할애되면서 별표 생성과 문제를 해결하는 부분이 나옵니다.혹시나 별표 구현에 질문이 있으실 분들에게 도움이 되실 내용을 옮겨봅니다. 1단계 : 별표 UI 구현별표 UI는 이렇게 구현하였습니다.강의 내용 중 Horizontal Layout과 Content Size Fitter를 활용하는 부분을 응용하였습니다.영상 내용에서는 나중에 나올 것 같습니다. (찾게 되면 남기겠습니다.) 2단계 : 인스펙터창 파라미터 넣기 StarParent 라는 변수는 "31강 HP패시브의 11:30"부근에서 StarParent 변수에 대한 짤막한 내용이 나오길래 유추하여 작성하였습니다. 3단계 : 실제 구현 상황강의 내용을 따라했을 경우, 올바르게 작동되는 걸 확인할 수 있었습니다. 구체적으로 31강 HP 패시브의 10:35 ~ 11:40 동안 나오는 코드와 내용을 보고 유추하여 제작하면 별표 UI를 제작할 수 있습니다.혹여나 이 부분에 대해서 언제 해결되나 또는 어떻게 해결해야 하나 고민하시는 분들이 계실까봐 내용 공유합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Animation blending 파라미터 계산
if (_moveToDset) { float target = _moveToDset ? 1f : 0f; wait_run_ratio = Mathf.Lerp(wait_run_ratio, target, 10.0f * Time.deltaTime); //wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime); Animator anim = GetComponent<Animator>(); anim.SetFloat("wait_run_ratio", wait_run_ratio); anim.Play("WAIT_RUN"); } else { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime); Animator anim = GetComponent<Animator>(); anim.SetFloat("wait_run_ratio", wait_run_ratio); anim.Play("WAIT_RUN"); }wait_run_ratio가 지수승으로 계산되고 0으로 도달하지 않습니다.play를 하면 Scene에서는 잘 뛰다가 멈춥니다.파라미터에서는 계속 저런 지수값으로 연산이 되는데 Lerp로 보간되서 값이 도달하지 않아서 그런걸까요? 강의에서 보면 parameter 가 0.0에 잘 도달하던데 왜 저는 저런 연산을 계속 하는건지 모르겠습니다.
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
21. 화염구 13:51 BaseCanvas.cs 에서 Start() 문 SelectCard() 오류 날 경우
SelectCard()를 시작부터 작동하도록 넣었을 때, 오류가 발생하였습니다.그 전에는 강의 내용과 동일한 오류를 내면서 강의 내용대로 따라왔는데 해당 구간의 오류를 이해해보려다가 임시 해결책으로 대체하였습니다. NullReferenceException: Object reference not set to an instance of an objectCardSelector.Initialize () (at Assets/Packages/06.Script/UI/CardSelector.cs:17)Base_Canvas.SelectCard () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:61)Base_Canvas.Start () (at Assets/Packages/06.Script/UI/Base_Canvas.cs:45) 이런 오류가 발생하였습니다.다음과 같이 조치를 취해서 정상 작동하고 있으나 혹시나 동일한 이슈가 발생하셔서 시작부터 레벨업을 못 하시는 분들이 계실까봐 글 남깁니다. 저는 Update()문에다가 레벨업해서 카드 고르는 메서드를 별도로 입력해두었습니다.그리고 Start() 문에 있는 SelectCard() 메서드를 주석처리하였습니다. private void Update() { TimerText.text = Util_UI.FormatTime(MANAGER.SESSION.GameTime); if (Input.GetKeyDown(KeyCode.Space)) { SelectCard(); } } 혹시나 이 이슈를 이해하고 해결하신 분이 계신다면 꼭 좀 답변 부탁드립니다...
-
미해결[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기
19. 스킬 구슬 강의가 몇 강 이후에 다시 촬영된 건지 알고 싶습니다.
SkillFrame.cs 자료와 Base_Canvas.cs 자료는 확인할 수 있었습니다.그러나 SkillFrame.cs의 Ienumerator CooltimeCoroutine(CardDB card, int Level) 메서드에서 메서드 지역 변수로 float cooltime을 초기화하고 설정해줄때 (9:32 부분) card.baseCooldown과 card.cooldownPerLevel 부분이 누락되어서 테스트를 해볼 수가 없네요... CardDB 스크립트도 참조되었으면 좋았을텐데 아쉽습니다..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
newPos와 to지점이 겹쳐져야 하는거 아닌가요?
newPos를 클릭지점으로 보면 되는건가요?그럼 to는 목표지점인데to라는 오브젝트 지점에 클릭(newPos지점) 한거 아닌가요?그럼 to지점과 newPos가 겹쳐져야 되는거 아닌가요?그런데 결과는 newPos값이 to보다 넘어버리네요from하고 to, newPos가 인게임 내에서 어떤걸 의미하는지 모르겠네요
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
userDataList Json으로 저장
UserDataManager.cs에모든 IUserData를 모아둔 userDataList가 존재하는데 해당 리스트를 Json으로 만들어서 파일로 저장하고 싶습니다. 이유는 모은 데이터를 한 개의 Json 파일로 관리하고 싶기 때문인데, 계속 시도 중인데 실패를 하네요... 아니면 userDataList를 Json화 시켜 저장하는 방법 말고 다른 방법이 있을까요?