묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Unity 6 혼자서 온라인 오목 게임 만들기 Unity + C# 서버 구현
바둑판과 돌 등 이미지들 자료 다운 버튼이 없어요
18강 결과물 파일(877MB)에서에셋 폴더에서 가져오긴했습니다만 7강에서 이미지를 다운할 버튼이 없네요
-
미해결절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
Bullet이 방향 문제가 있어요.
안녕하세요. 강의 잘 듣고 있습니다.총알을 아래와 같이 쐈습니다.총구는 void Shoot() { Debug.Log($"FirePos Position: {firePos.position}, Rotation: {firePos.eulerAngles}"); Instantiate(bulletPrefab, firePos.position, firePos.rotation); }총알 자체는 이렇게 힘을 주었습니다. void Start() { rb = GetComponent<Rigidbody>(); rb.AddRelativeForce(transform.forward * speed); } AddForce를 하면 정확히 잘 나가는데AddRelativeForce를 하면 2배로 각이 회전되어 날라갑니다.0도에서는 직진, 45도에서는 90도? 이런식으로 날라가네요.로그로 각도를 확인해봐도 생성시 전역좌표는 문제가 없어보입니다.제가 뭔가 잘못한것일까요?확인 부탁드립니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
36. Serialization #3 에서 string (name) 코드 수정 질문
안녕하세요! 강의 내용은 name을 받는 과정에서 byte[] 직렬화 및 역직렬화 하기 위해 nameLen을 count하고, 이를 ArraySegment에 넣는 과정인데요. 그 과정에서 다음과 같은 코드를 사용합니다. ServerSession.cs 이고, public override ArraySegment<byte> Write()함수 내부입니다. // stringushort nameLen = (ushort)Encoding.Unicode.GetByteCount(name);success &= BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), nameLen);count += sizeof(ushort); // nameLen(2)Array.Copy(Encoding.Unicode.GetBytes(name), 0, segment.Array, count, nameLen);count += nameLen; // name(n) 여기서 Array.Copy(Encoding.Unicode.GetBytes(name), 0, segment.Array, count, nameLen);이 부분에서 count 대신 count + segment.Offset 를 사용하는 것이 올바르지 않을까 하여 질문드립니다. 이는 for문을 포함하여 코드 실행시 서버 측에서 다음과 같이 나타나기 때문입니다.Listening...PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1Client connected: [fe80::9e56:3a99:3a3a:58be%18]:55626OnDisconnected: [fe80::9e56:3a99:3a3a:58be%18]:55626 이처럼, 첫 1회만 NPC라는 네임이 제대로 나타나는 것을 볼 수 있습니다. 그러나 count + segment.Offset 를 사용했을 경우는, 다음과 같이 제대로 나타납니다. Listening...Client connected: [fe80::9e56:3a99:3a3a:58be%18]:55458PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1OnDisconnected: [fe80::9e56:3a99:3a3a:58be%18]:55458 물론 이후 리팩토링을 통해 작성한 코드에서는 전부 제대로 나타납니다.ushort nameLen = (ushort)Encoding.Unicode.GetBytes(this.name, 0, this.name.Length, segment.Array, segment.Offset + count + sizeof(ushort));(리팩토링 코드) Offset을 사용하지 않을 경우 아마도 패킷을 덮어써서 이런 결과가 나타나는 것 같습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
PlayerPrefs 에 대해서 문의드립니다.
안녕하세요 이 강의 80% 이상 수강하고 다시 반복해서 듣고 있고 있는데요.초보지만 퀄리티 높고 유익한 강의로 오늘도 많이 배우고 있습니다. 정말 감사합니다.다름이 아니라 PlayerPrefs 에 대해서 궁금해서 문의 좀 드리려고 합니다.PlayerPrefs 에 대해서 궁금해서 구글링을 했을 때에는PlayerPrefs 의 경우 '편하게 사용할 수는 있지만 속도가 늦고 타입에 한계가 있고 특히 보안에 취약'하다고 파악을 했습니다. 사실 만들고자 하는 게임이 속도나 타입에는 크게 영향을 받지는 않지만 나중에는 굿즈나 인벤토리 데이터까지 데이터를 관리하게 되니 보안이 문제가 될 것 같아서 문의 드립니다.궁금한 점은PlayerPrefs 그럼에도 실제 프로젝트에서도 사용이 되는지?만약 사용된다면 PlayerPrefs 보안관련 작업을 따로 수행하나요?구글링을 하면서 Easy Save 라는 에셋 사용까지 이르게 되었는데, Easy Save 툴로 암호화된 파일로 유저 데이터를 로컬과 게임 규모에 따라서 서버에 저장해서 사용하는 것이 안정성이 있다고 파악을 했는데 이것도 괜찮은 방향인지 문의드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
외부 컴퓨터와의 통신 방법이 궁금합니다
직접적으로 다른 컴퓨터와 통신하는 방법같은 것은 수업 커리큘럼에 나와있지 않던데어떻게 하면 되는 건가요? 포트포워딩과 방화벽 인바운드 설정만 추가하면외부 컴퓨터에 프로그램을 깔아서 통신할 수 있는 건가요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 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를 제작할 수 있습니다.혹여나 이 부분에 대해서 언제 해결되나 또는 어떻게 해결해야 하나 고민하시는 분들이 계실까봐 내용 공유합니다.