/// <summary> /// �f�V���A���C�Y���ꂽ���[�V�����I�u�W�F�N�g��擾���� /// </summary> /// <param name="type">���[�V�����^</param> /// <param name="bytes">�V���A���C�Y�ς݃��[�V�����f�[�^</param> /// <returns>���s�����[�V�����I�u�W�F�N�g</returns> public static MotionBase2D GetDeserializedMotion(EasyMotion2D.MotionType type, byte[] bytes) { // ���[�V�����I�u�W�F�N�g�쐬 var motion = CreateInstance(type); if ( bytes != null ) { // ���[�V�����f�[�^�̃f�V���A���C�Y motion.Deserialize(bytes, 0); } return motion; }
/// <summary> /// �f�V���A���C�Y���ꂽ���[�V�����I�u�W�F�N�g��擾���� /// </summary> /// <param name="type">���[�V�����^</param> /// <param name="bytes">�V���A���C�Y�ς݃��[�V�����f�[�^</param> /// <param name="offset">���[�V�����f�[�^�̊J�n�ʒu</param> /// <param name="nextOffset">���̃��[�V�����f�[�^�̊J�n�ʒu</param> /// <returns>���s�����[�V�����I�u�W�F�N�g</returns> public static MotionBase2D GetDeserializedMotion(EasyMotion2D.MotionType type, byte[] bytes, int offset, out int nextOffset) { // ���[�V�����I�u�W�F�N�g�쐬 var motion = CreateInstance(type); // ���[�V�����f�[�^�̃f�V���A���C�Y nextOffset = motion.Deserialize(bytes, offset); return motion; }
/// <summary> /// �V�K�̎��s�����[�V�����I�u�W�F�N�g������ /// </summary> /// <param name="type"></param> /// <returns></returns> public static MotionBase2D CreateInstance(EasyMotion2D.MotionType type) { return Activator.CreateInstance(runtimeType[type]) as MotionBase2D; }