Unityを用いて、自作のクラスを引数にRPCを送信したいです。
送信にあたり、ObjectFactory.Instance.Register(typeof(自作クラス名));
を使ってクラスをクラス情報を登録しました。
実行すると、UnregisteredClassInfoException: ClassInfo not registered for classId: System.IntPtrというエラーが発生します。
System.IntPtrはクラスとして使用していないのですが、System.IntPtrもObjectFactory.Instance.Register()で登録する必要があるのでしょうか。
一応、System.IntPtrも追加し、実行してみたところUnregisteredClassInfoException: ClassInfo not registered for classId: system.reflection.pointerというエラーが発生し、こちらも追加し実行したところ、Unityがクラッシュしました。
念のため、送信したいクラスを下記に記します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using EnumController;
using ExtendUtil;
public class BattleModeCard : MonoBehaviour
{
public Sprite sprite;
public int level;
public int cost;
public int soul;
public EnumController.CardColor color;
public EnumController.Trriger trigger;
public EnumController.Type type;
public EnumController.Attribute attributeOne;
public EnumController.Attribute attributeTwo;
public EnumController.Attribute attributeThree;
public EnumController.CardNo cardNo;
public string name;
public int power;
public bool isCounter;
public string explanation;
/// <summary>
/// コンストラクタ
/// </summary>
public BattleModeCard()
{
}
public BattleModeCard(Sprite sprite,
int level,
int cost,
EnumController.CardColor color,
EnumController.Trriger trigger,
EnumController.Type type,
EnumController.Attribute attributeOne,
EnumController.Attribute attributeTwo,
EnumController.Attribute attributeThree,
EnumController.CardNo cardNo,
string name,
int soul,
int power,
bool isCounter)
{
this.sprite = sprite;
this.level = level;
this.cost = cost;
this.color = color;
this.trigger = trigger;
this.type = type;
this.attributeOne = attributeOne;
this.attributeTwo = attributeTwo;
this.attributeThree = attributeThree;
this.cardNo = cardNo;
this.name = name;
this.soul = soul;
this.power = power;
this.isCounter = isCounter;
}
}