主に前回の記事で起きたことの修正です。
前回↓
https://qiita.com/wttk05/items/5f8cef73a5aa5ec3e06a
では本題です。(タイトルがまとまってなくてすいません)
まず前回のIllegal view ID:0ですがphotonnetwork.instantiateを使わないと出るエラーらしいです。逃れられないのでphotonnetwork.instantiateを使用した後値を参照することにしました。
void CreateCardPrehub(Transform transform,int cardID)
{
// Prehubを生成
playerInfo = PhotonNetwork.Instantiate("Cards", new Vector3(100, 100, 1), Quaternion.identity,0);// Photonオブジェクト生成
playerInfo.transform.SetParent(playerFieldTransform.transform); // 親を設定
playerInfo.transform.localScale = new Vector3(1.5f, 1.5f, 1.5f); // カードのサイズを設定
playerInfo.transform.position = new Vector3(510, 270,0);// カードの位置を設定
//CardControllerを参照してInitを実行
playerInfo.GetComponentInParent<CardController>().Init(cardID);
}
CardViewでの値はinstantiaceするオブジェクトに付いているテキストやImage等をアタッチしています。
カードの位置の設定等はもっといい方法があるかもしれませんが今の自分では無理だったので裏で動く脳みそに任せて
成功を祝おうと思います。
CreateCardPrehub(playerPrehab.transform,1);
これ1行で幸せになれる。
まだ色々適当なので少しずつソースコードを壊れない程度に整理しつつ、カードゲームをオンライン化していこうと思います。
ちなみにコード一つ一つ解説するより大まかにサンプルを上げたほうが他人から見ても自分から見てもわかりやすいと思いってるので
このスタイルを続けます😏
今回はこの辺で終わります。
アドバイスやコメントくださってる方本当にありがとうございます。
Unityしてる友達がいないのでとても助かってます。
Twtter@wttk05