Title 씬 프리팹 관련 질문이 있습니다. Q1. 타이틀 프리팹에 별도의 UI만 보여주는 카메라를 만든 이유가 무엇인가요? (main 카메라가 아닌 별도의 카메라를 만들고 또 그것을 프리팹에 넣은 이유) Q2. Title의 경우 프리팹에 캔버스까지 있습니다. 궁금한 것은 InGame에서 각각 UI들도 프리팹으로 만들텐데, 다 이렇게 개별 UI 프리팹마다 캔버스를 만드는 것이 좋은가요? (프리팹 안에 캔버스를 넣는 이유와, 주의해야 할 사항) * ) 제가 예전에 작업을 할 때, 큰 UI 캔버스 만들고 하위로 캔버스를 가진 UI프리팹들을 넣으니까, 가끔 프리팹 창에서 수정할 때 UI들이 화면에 보이지 않았던 경험이 있어서 질문드립니다! 좋은 강의 감사합니다 🙂 남은 강의도 잘 챙겨 보겠습니다!
인터페이스를 활용한 피격 데미지 구현 강좌를 보면 총알의 HIT를 Collision 기반에서 Raycast 기반으로 변경하고 있습니다. Raycast를 사용하는 장점은 무엇인가요? 현업에서도 FPS/TPS를 제작할 때 Collision보다는 Raycast를 더 많이 사용하나요?
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요. GameObject.OnDead()에서 Room.Broadcast(diePacket);부터는, 로직의 순서를 동기화하기 위해 잡큐에 넣지 않고 처리하는 방법을 선택하셨습니다. 다행히(?) 해당 로직이 최초 Update()에서 호출이 되고 Update()가 일감으로 들어가서 처리되다 보니까 넓은 의미에서 OnDead() 역시도 잡큐에서 처리될 거니까 문제는 없는 것 같긴 합니다. 실무에서도 이런 식으로 기본적으로 잡큐 방식을 사용하지만, 순서 동기화 등 필요에 따라 하위 일감을 잡큐에 넣지 않고 바로 실행하는 방식이 유연하게 사용되는 것인지 궁금합니다~ 이쪽으로 실무 경험이 없다 보니까 어느 수준까지 유연하게 대처해야 하는지 감을 조금 잡고 싶습니다. 감사합나다.
유니티수업에서 Networkmanger class 질문입니다. 클라이언트에서 서버와 통신 도중 통신 연결이 갑자기 해제한 된 경우(사용자가 의도하지 않은 경우 랜선이 뽑혔다거나..) Connector는 새로 생성해서 기존 Session 객체를 넘겨주면 되는건가요? 소켓은 다시 생성하고 session객체는 재사용이 되는걸까요? 이때 session객체가 이미 사용중이라는 메세지가 뜨는 것 같아서요. 서버와 통신 중 어떤 이유로 연결 해제 시 클라쪽에서 서버와 자동 재접속을 해보고 싶어 질문드립니다.
안녕하세요? 강의 중 궁금한 점이 몇 가지 있어 질문 드립니다. Tiling And Offset에 UV 노드를 연결하셨는데 이유가 혹시 있을까요? 연결하지 않아도 똑같이 동작해서 궁금합니다. UV가 텍스처의 좌표값이라면 Tilling And Offset은 2차원 벡터인 이유는 이해가 갑니다. 근데 일반 UV 노드의 output은 4차원 벡터인 이유가 궁금합니다. Sine Time을 Sine 노드에 연결하셨는데, 이렇게 되면 sin(sin(time)) 이렇게 작동하는게 맞을까요? sin이 -1~+1 사이를 왔다갔다 한다면 sin(sin(time))의 실제 Output은 절댓값이 1에 못미치는 값으로 왔다갔다 할텐데 제 생각이 맞는지 궁금합니다. 감사합니다.
질문1. foreach(var iconEntry in activeIcons) { if (!currentObjects.Contains(iconEntry.Key)) { iconEntry.Value.GetComponent<UIAnimationHandler>().AnimationChange("OUT"); Destroy(iconEntry.Value); toRemove.Add(iconEntry.Key); } } 이 코드에서 파괴명령이 있어서 또다른 파과명령은 안 내려도 되지 않나요? 저는 멀어지면 아이콘이 잘 파괴되서 여줘봅니다. ->해결(Destory옮긴 건을 못 봤네요. ) 질문2. foreach(Collider obj in nearbyObjects) { Transform targetTransform = obj.transform; float distance = Vector3.Distance(transform.position, targetTransform.position); if(distance <= activationDistance) { ShowIcon(targetTransform); currentObjects.Add(targetTransform); } } 제가 이해하기에는 currentObjects목록에는 항상 실시간으로 부딪힌 collider들의 transform만 가질 수 있도록 update가 돼야 작동하는 게 맞는 것 같은데요. 추가하는 코드만 있는데 갱신이 되려면 거리를 충족시키지 못하면 이미 있는 transform들을 삭제하는 코드가 있어야 맞는 거 아닌지 의문이 들어요. -> HashSet<Transform> currentObjects = new HashSet<Transform>(); 이부분에서 계속 초기화가 된다고 생각하면 될까요?
현재 사용중인 기기 : 맥북 SettingsUI 어드레서블 에셋 등록 시 폰트 리소스 렌더링 이슈 강의와 차이점 : OpenGLES3 없음 -> OpenGLCore(Deprecated) 로 대체 폰트 렌더링이 되지 않고 있습니다. 해결 방법 아시는분 계시면 공유 부탁드립니다. 추가 Mac Silicon Chips 은 Metal 사용 Canvas Renderer 충돌로 보임 플레이 시 Material -> shader 옵션 변경 시 텍스트 전체 보임 폰트 설정 시 해당 텍스트 보임 대체 안 폰트도 어드레서블 등록해서 리소스 관리할지
세계시간 API 서버 SSL Connection 에러로 호출이 되지않아 대체 API 를 찾고있습니다. 대체 API 아시는 분은 공유 부탁드립니다. 강의 예제 세계 시간 API : https://worldtimeapi.org/api/ip 상태 체크 : https://status.worldtimeapi.org/
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
안녕하세요. 서버 쪽에 HandleSkill() 함수를 보면 스킬 사용이 문제 없다면 주석에 info.PosInfo.State = EntityState.Skill 코드가 있는데요. 지금 시점에서는 사용되지 않는 코드인 것 같은데 나중에 사용될까요? 당연히 지금 로직에서는 없어도 동작에 지장이 없습니다. 클라이언트의 PlayerController.cs에서 CoStartPunch() 함수를 호출할 때 쿨타임을 위해(?) CheckUpdateFlag()를 호출하는데 이게 기본적으로 이동 패킷이라서 지금 로직에서는 없어도 되는 코드로 보입니다. 강의에서 설명해주신 기능에 실제로 이 코드가 필요한 게 맞는지 궁금합니다 쿨타임 관련해서 클라/서버 둘 다 처리해야 한다고 말씀하셨는데 작성된 코드를 보면 클라에서만 코루틴을 사용해서 처리하신 것 같습니다. 서버에서는 시간 관련한 로직이 없으니까요. 감사합니다.
강의 감사히 잘 듣고 있습니다. 다만 강의 사운드가 너무 작다 보니 시스템 사운드 제차를 많이 키워서 듣고 있습니다. 그러다 보니 다른 알람 같은게 오면 무척 소리가 커서 강의 듣다가 깜짝깜짝 놀라게 되네요. 그리고 소리 자체도 조금 울림이 있어서 이어폰으로 들으면 피로감이 좀 있습니다. ㅠ_ㅠ 조금 수고스러우시겠지만 영상 편집 프로그램에서 사운드 분리 하셔서 증폭 시키고 울림이나 이런거 좀 조정해서 강의 다시 업데이트 하시면 좋을거 같아서 건의 드려 봅니다. 감사합니다.