안녕하세요. 스크립터블 오브젝트를 이용해서 메모리 사용을 최적화 하는건 참 놀랐습니다. 그 어느 강의에서도 못보던 내용인데요. 2개 이상의 변수에 대해 사용하는 것은 이해를 할 수 있을거 같은데요. bullet 같은 경우는 int 형 자료 하나만 있었는데 이것도 옮기시더라구요. int bulletSpeed; 는 정수형이므로 4byte 일거고 ScriptableObject so; 는 참조형이라서 8byte 를 갖지 않을까 싶어서요. 그러면 int 하나만 있는것은 so 로 변환하는게 오히려 손해 아닌가요?
안녕하세요 저는 Mac을 이용해 강의를 듣고 있습니다. 현재 Visual studio for Mac의 지원중단에 따라 VScode로 따라가고 있습니다. 실행할 때에도 vscode 내에 분할 터미널을 이용해 "dotnet run" 명령어로 Server, Client를 실행시키고 있습니다. 그런데, 유니티 연동#1 강의에서도 같은 방법을 dotnet run으로 Server와 Client를 실행시키고 유니티에서 플레이 버튼을 눌렀을 때 "OnConnectCompleted Fail: ConnectionRefused"이라는 에러가 떠서 Connect가 아예되고 있지 않습니다! Mac 환경의 문제인지 아니면 제가 잘못된 방법으로 진행중인지 알려주시면 감사하겠습니다!
안녕하세요 4강 Key UI 학습 중에 질문이 있어서 글을 남깁니다. 위의 사진과 같이 Game 화면에서 폰트가 깨져 알아볼 수 없는 형태가 됩니다. NotoSans와 Liberation 모두 저런 현상이 나타납니다. Atlas Resolution, Character Set, Render Mode 모두 재설정해봤는데 계속 깨집니다ㅠㅠ
SendBufferHelper를 TLS로 구현을 해서 각 쓰레드가 고유한 SendBuffer인스턴스를 갖게 되는데 ArraySegment<byte> openSegment = SendBufferHelper.Open(4096); byte[] buffer = BitConverter.GetBytes(knight.hp); byte[] buffer2 = BitConverter.GetBytes(knight.attack); Array.Copy(buffer, 0, openSegment.Array, openSegment.Offset, buffer.Length); Array.Copy(buffer2, 0, openSegment.Array, openSegment.Offset + buffer.Length, buffer2.Length); ArraySegment<byte> sendBuff = SendBufferHelper.Close(buffer.Length + buffer2.Length); Send(sendBuff); 그럼 이부분에서 A라는 쓰레드가 Open과 Close를 통해 고유한 SendBuffer의 buffer에 정보(패킷)를 저장을 하게되고 그 정보를 Send하게 되고 그걸 sendQueue에 그냥 저장만 한 상태라고 가정을 해보겠습니다. 또 B라는 쓰레드도 위 과정을 해서 Queue에 저장을 하게된다고 하겠습니다. 여기서 궁금한게 일단 A 와 B가 Send를 한 그 정보는 각 쓰레드가 고유한 _buffer에 저장된 정보이고 만약 다른쓰레드가 큐에저장된 값을 보낸다고 할때 ArraySegment는 원본을 참조하니까 A와 B의 고유한 인스턴스에 접근을 해야하는거 아닌가요..? ArraySegment가 원본을 [참조] 하니까 접근을 하지만 [읽기만] 하기때문에 괜찮다. 이렇게 이해를 하면되는건지 아니면 제가 잘못이해하고있는건지 궁급합니다.
Vector2.right에 -speed 곱하는거말고 Vector2.left를 사용하면 안되는 건가요?? 그리고 코드를 /똑같이 작성했는데도 불구하고 에너미가 스폰되고 우리팀 본진에 충돌했을시 공격애니메이션이 최초 1회밖에 실행이 안됩니다 반복이 안되고 처음 충돌하고 최초 1회 실행되고 그다음부터는 그냥 아이들모션으로 멈추네요 왜이러는거죠ㅠㅠ
강사님~ 너무 재밌게 강의를 듣고 있습니다. 궁금한게 하나 있는데 섹션 6번에서 '스파크 이펙트 표현' 강의를 완강 후 'Audio 기초 사용법' 강의로 넘어갔는데 오디오 파일이 없어서... 혹시 오디오 리소스는 어디서 다운 받을 수 있을까요? 혹시나 제가 수업자료를 놓친건가 싶어서 앞 강의를 다시 돌려봤는데 어디서 받아야하는지 잘 모르겠습니다.
안녕하세요. 혹시 캐릭터의 위치를 서로 바꿀때 클라이언트의 서버 스포너위치에 옮겨질 캐릭터의 잔상이 남는데 무엇이 문제인가요? hero쪽에 if (IsServer) transform.parent = target.transform; 이 구문을 빼면 잔상이 없어지긴 합니다.
Debug.Log를 찍어본 결과, Physics.Raycast(eyeTransform.position, direction, out RaycastHit hit, viewDistance, whatIsTarget) 위 코드의 반환값이 false라는 것을 알아냈어요. 플레이어 캐릭터가 좀비 앞에서 아무리 알짱거려도 진짜 코앞까지 얼굴을 들이미는 게 아니면 계속 false가 떠요. 이상하게도 얼굴을 들이밀면 true가 떠요. 딱히 viewDistance 같은 걸 조절한 게 아니라서 거리 문제는 아닌 것 같은데, 왜 레이캐스트가 자꾸 false가 뜨는 걸까요? 이해가 안 돼요... ㅠㅠ
선생님의 코드를 다 마치고 몬스터를 스폰하는 테스트를 하는 중에 위와 같은 오류가 떠서 이게 뭐지 하고 있는데 Knight 프리팹으로 가서 NavMeshAgent를 추가하고 테스트를 하니 정상적으로 몬스터가 스폰이 되어서 나왔습니다. 아마도 NavMeshAgent 를 사용한 이동 방식이 문제인거 같은데... 혹시 저와 같은 문제를 겪고 계신 분들은 이렇게 하면 해결이 되는구나.. 하고 조심스레 올려 봅니다.