해결된 질문
작성
·
124
0
안녕하세요.
Host는 정상적으로 작동이 됩니다.
Client에서는 Host와 Client에서 생성한 영웅 모두 아래 가운데에 소환이 됩니다.
그리고 Client측을 보면 index가 어떤 이유에서인지 모두 -1이 나와 히어로 홀더가 모두 아래쪽 가운데에 위치하고 있습니다.
답변 3
0
안녕하세요 승근님, 오류 수정 완료한 내용으로 새로운 강의 영상 올라갔으니 확인 한 번 부탁드리겠습니다!
오류는 생각보다 어이없게 해결이 되어버려서..ㅎㅎ 영상 끝까지 보시면서 한 번 확인해주시면 좋을 것 같습니다 🙂
0
안녕하세요. 강의대로 했는데도 안 되서요.
강사님 하신것 처럼 이것저것 디버그를 찍어보니
client에서는 list를 만들기 전에 자꾸 setPosition함수를 호출 하더라구요.
그래서
IEnumerator DelayHeroHolderSpawn(bool player)
{
var go = Instantiate(_spawnHolder);
NetworkObject networkObject = go.GetComponent<NetworkObject>();
networkObject.Spawn();
string temp = player == true ? "HOST" : "CLIENT";
int value = player == true ? 0 : 1;
string organizers = temp + hostClientValueIndex[value].ToString();
hostClientValueIndex[value]++;
yield return new WaitForSeconds(0.5f);
그래서 client와의 지연차가 이렇게 큰 가 싶어서 0.5초로 하니 해결됐습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 양승근님.
강의 내용과 관련된 문제로 Client에서 영웅 소환 시, 모든 영웅이 아래 가운데에 소환되는 문제를 겪고 계신 것 같습니다. 이와 같은 문제는 주로 위치 설정 로직이나 데이터 동기화 문제 때문에 발생할 수 있습니다. 다음은 몇 가지 확인해볼 만한 사항과 참조할 수 있는 해결 방법입니다.
초기 위치 설정 확인: 클라이언트 쪽에서 초기 위치를 설정하는 로직을 점검하세요. 영웅의 위치를 결정하는 SpawnList
와 SpawnListArray
의 인덱스 값이 유효한지(즉, -1
이 아닌 유효한 값인지) 확인해야 합니다.
데이터 동기화 확인: 클라이언트와 호스트 간의 위치 데이터가 제대로 동기화되고 있는지 점검해보세요. 혹시 클라이언트에서 값을 갱신하지 못하고 있을 수 있습니다.
스크립트 로직 검토:
SetPositionHero
함수에서 index
가 -1
으로 설정되는 이유를 추적해야 합니다. 이는 spawnListArray.IndexOf(false)
가 항상 실패하고 있기 때문일 수 있습니다.유사한 문제를 해결한 기존 질문 답변을 참고하시면 도움이 될 수 있습니다:
- 빈 공간 이동에서 에러발생: 이 게시물에서는 클라이언트의 영웅 소환 시 특정 위치 오류와 관련한 문제를 다루고 있습니다.
위의 안내를 따라 문제를 해결해 보시고, 특정 코드 조각이나 오류가 계속 문제가 된다면 조금 더 구체적인 정보를 주시면 추가적인 도움을 드릴 수 있습니다.
저는 질문자님의 이해를 돕고자 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아. 오류수정 강의가 그 내용인 줄 알았는데 아니었군요. 감사합니다^^