おっす、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 件のコメント:
コメントを投稿