'Unity'에 해당되는 글 184건
- 2021.12.16 유니티 ScriptableObject
- 2021.12.14 자주 쓰는 유니티 포톤챗 코드
- 2021.12.13 디버그로그 음소거
- 2021.12.08 포톤 오류,에러 모음
- 2021.12.04 래그돌
- 2021.11.30 유니티 트랜스 폼 (Transform)
- 2021.11.24 포톤 친구랑 같이 플레이
- 2021.11.18 C# 메일
32752 - A server-side plugin (or webhook) failed to execute and reported an error.
Check the OperationResponse.DebugMessage.
웹훅설정해서 그럼
OnJoinRoomFailed에러 모음
public override void OnJoinRoomFailed(short returnCode, string message)
{
switch (returnCode)
{
case ErrorCode.GameFull:
Debug.LogError("풀방임");
break;
}
}
----------------------------------------------------------------------------------------------
NotSupportedException: StartBackgroundCalls() can run a maximum of 255 threads.
포톤챗을 과도하게 연결시도함
SupportClass.StopAllBackgroundCalls()로 기존 연결들을 삭제하면 해결된다
SupportClass.StopAllBackgroundCalls();
chatClient.Connect(PhotonNetwork.PhotonServerSettings.AppSettings.AppIdChat,
PhotonNetwork.AppVersion, new AuthenticationValues(PhotonNetwork.AuthValues.UserId));
----------------------------------------------------------------------------------------------
Can not Instantiate before the client joined/created a room.
방연결 안 됐는데 네트워크 오브젝트 생성하려고 해서 그럼
PhotonNetwork.InstantiateRoomObject(botPrefab.name, pos, rot);
이거를
if(PhotonNetwork.CurrentRoom != null)
{
PhotonNetwork.InstantiateRoomObject(botPrefab.name, pos, rot);
}
이렇게 수정해주자
----------------------------------------------------------------------------------------------
InvalidCastException: Specified cast is not valid.
PhotonPlayerData.OnPhotonSerializeView (Photon.Pun.PhotonStream stream, Photon.Pun.PhotonMessageInfo info)
얼핏 봐서는 캐스트 타입 잘못 지정해서 그런거 같아보이지만 전혀 아니다.
몰론 아~주 가끔 정말로 타입 미스나서 그럴수도 있겠지만
(가끔 구버전이랑 신버전끼리 연결할때도 뜨더라)
해결방법 v1
동일 게임오브젝트에 IPunObservable을 마구 넣은뒤에 인스펙터에서 값 확인하려고 할때 뜬다
해결법은
기존
병합후
IPunObservable 불필요하게 분산시키지 말고 병합시키면 된다
다른 게임오브젝트에 옮기는거도 생각해봤는데 이런경우는 보통 GetComponent로 서로 호출하는게 많아서
서로 연결시키기 귀찮으니 걍 병합함
어차피 GetComponent로 가져오면 되니 수리하는데 드는 작업량도 작다
근데 이렇게 병합하면 아래 오류가 뜰수도 있다
v2
v1을 다 써놓고 보니 어 잠깐 IPunObservable가 갱신 안 되어서 발생하는 문제라면 혹시...
예상이 맞았다. 그냥 PhotonView 플래그 문제였다.
개뻘짓함
리셋후 프리팹 저장해줘라
----------------------------------------------------------------------------------------------
Observed scripts have to implement IPunObservable.
원래 있던 IPunObservable들이 사라져서 생긴거
왜냐하면 쟤내들이 Auto Find All을 할때 플래그를 안 세워서 프리팹에 저장 안 되어있음 (하?)
방법은 두가지
첫번째는 매뉴얼 사용이고
두번째는 Reset사용이다
후자가 더 편하니 후자를 씀
원리는 당연히 플래그를 강제로 세워서 컴포넌트를 저장시키는것
'Unity > Photon' 카테고리의 다른 글
자주 쓰는 유니티 포톤챗 코드 (0) | 2021.12.14 |
---|---|
포톤 친구랑 같이 플레이 (0) | 2021.11.24 |
포톤 메신저 (0) | 2021.11.15 |
유니티 래그돌
이걸 그대로 쓰면 각종 물리효과나 애니메이터와 충돌이 일어나기 쉽다
뼈 이름도 거지같아서 애니메이터 본 이름과 또 다름
https://docs.unity3d.com/kr/2018.4/Manual/wizard-RagdollWizard.html
액티브 래그돌
휴먼폴플랫처럼 상시 동작하는 래그돌이다
요점은 별도로 애니메이터로 동작하는 모델을 만들고
거기에 조인트를 달아서 래그돌 모델에 조인트 각도 트래킹을 하면 된다
https://ichi.pro/ko/unityeseo-aegtibeu-laegeu-dol-eul-mandeuneun-bangbeob-58499565065517
귀찮으면 사도 된다
https://assetstore.unity.com/packages/tools/physics/active-ragdoll-123749?locale=ko-KR
게임 뿐만 아니라 로봇제어에도 적용시킬수 있는 시스템이다
공통부모들을 반환
Transform[] GetCommonParents(params Transform[] targetTransforms)
{
if ((targetTransforms == null) || (targetTransforms.Length == 0))
{
return null;
}
var parentsArray = System.Array.ConvertAll(targetTransforms, x => x.GetComponentsInParent<Transform>());
var commonParents = parentsArray[0];
for (int i = 1; i < parentsArray.Length; i++)
{
commonParents = System.Array.FindAll(commonParents, x => parentsArray[i].Contains(x));
}
return commonParents;
}
부모와 자식사이의 노드들을 반환
앞쪽에 있을수록 부모에 가까움
Transform[] GetNodes(Transform parent,Transform child)
{
if ((parent == null) || (child == null))
{
return null;
}
var parents = child.GetComponentsInParent<Transform>();
var parentIndex = System.Array.FindIndex(parents, x=>x==parent);
if (parentIndex < 0)
{
return null;
}
if (parentIndex == 0)
{
return new Transform[] { } ;
}
return parents.Take(parentIndex).Reverse().ToArray();
}
'Unity > C#' 카테고리의 다른 글
유니티 ScriptableObject (0) | 2021.12.16 |
---|---|
C# 메일 (0) | 2021.11.18 |
A Star (0) | 2021.11.06 |