Exception: Write failed. Custom type not found: UnityEngine.GameObject
현재 Board는 GameObject type의 2차원 배열로 한 보드마다 게임오브젝트가 할당되는데, PunRPC를 사용하면서 게임오브젝트의 클라이언트<->마스터간 전송이 불가능하다.
이 때 찾은 방법으로는 게임오브젝트의 ViewID를 넘겨주고, 포톤뷰의 Find를 이용하여 ID로 오브젝트를 찾아서 할당해주는 방법이 있다. 또 다른 좋은 아이디어가 필요하다.
하지만 Board 2차원배열이 GameObject로 필요한지에 대해 의문이 생긴다.
BlackTeamPiece/ WhiteTeamPiece로 나누어서 GameObject에 이미 작성하고 있고, Board는 기물이 존재하는지 안하는지만 판단하고 있지 않은가?
public void SetBoard(GameObject GObject, int idxX, int idxY)
{
photonView.RPC("SetBoardRPC",RpcTarget.AllViaServer, GObject.GetComponent<PhotonView>().ViewID, idxX, idxY);
}
[PunRPC]
public void SetBoardRPC(int ID, int idxX, int idxY)
{
Board[idxX, idxY] = PhotonView.Find(ID).gameObject;
}
위 코드로 GameManager.cs:30-38 line을 수정하게 되면 정상적으로 Board에 갱신이 이루어진다.
PUN2
Move
Animator
SetBoard
Exception: Write failed. Custom type not found: UnityEngine.GameObject
현재 Board는 GameObject type의 2차원 배열로 한 보드마다 게임오브젝트가 할당되는데, PunRPC를 사용하면서 게임오브젝트의 클라이언트<->마스터간 전송이 불가능하다. 이 때 찾은 방법으로는 게임오브젝트의 ViewID를 넘겨주고, 포톤뷰의 Find를 이용하여 ID로 오브젝트를 찾아서 할당해주는 방법이 있다. 또 다른 좋은 아이디어가 필요하다.