おっす、siroponnです。
今回はOnPhotonInstantiateのエラーについてです。
OnPhotonInstantiateはPhotonNetwork.Instantiate により生成された GameObject(とその子オブジェクト)上のすべてのスクリプトでコールされる(公式抜粋)
さて、こういったエラーが出たことありませんか?
↓
TargetParameterCountException: parameters do not match signature.
これは
void OnPhotonInstantiate()
と書いてしまうと、出ます。
ただしくは
void OnPhotonInstantiate(PhotonMessageInfo info)
という風に引数を入れてあげないとダメです。
これは簡単なエラーだったのですぐ見つかりました。
が、びっくりしたので書き記しておきます。
RPCでは引数いらないのにこれは引数いるのはなんでじゃー。って思ったのは秘密。
では凡人siroponnでした~~。ノシシ
次はどうしよう。ネタがないから、うーん。しばらく考えてみます。
追記:08/07 05:34
OnPhotonInstantiateの使い方を書き忘れていました。
public class A : MonoBehaviour{
int TestId;
void Test()
{
object[] obj = new object[1];
int[] id = new int[1];
id[0] = TestId;
obj[0] = (int)id[0];
PhotonNetowork.Instantiate("TestPrefab",this.transform.position,Quaternion.identity,0,obj)
}
}
public class TestPrefabScript : MonoBehaviour{
int catchId;
PhotonView pView;
void Awake()
{
pView = GetComponent<PhotonView>();
}
void OnPhotonInstantiate(PhotonMessageInfo info)
{
this.catchId = (int)this.pView.instantiationData[0];
}
}
PhotonNetwork.Instantiateの時にobject型を送ります。
インスタンスされたオブジェクトに付随するPhotonViewにアクセスする。
するとinstantiationDataにobject型の送られてきた値が入っているのでOnPhotonInstantiateで受け取る。
調べていませんが、別にOnPhotonInstantiateで受け取る必要はないかもしれません。
0 件のコメント:
コメントを投稿