/// <summary> /// �f�V���A���C�Y /// </summary> /// <param name="bytes">�V���A���C�Y�ς݃��[�V�����f�[�^</param> /// <param name="offset">���[�V�����f�[�^�̊J�n�ʒu</param> /// <returns>�f�V���A���C�Y�Ɏg�p�����o�C�g�T�C�Y��offset����Z�����l</returns> public override int Deserialize(byte[] bytes, int offset) { offset = base.Deserialize(bytes, offset); duration = BitConverter.ToSingle(bytes, offset); offset += sizeof(float); progFuncType = (ProgFuncBase.FuncType)BitConverter.ToInt32(bytes, offset); offset += sizeof(int); progFunc = ProgFuncBase.GetDeserialized(progFuncType, bytes, offset, out offset); return offset; }
/// <summary> /// �V���A���C�Y /// </summary> /// <returns>�V���A���C�Y���ꂽ�o�C�i���z��</returns> public override byte[] Serialize() { var result = base.Serialize(); if ( progFunc == null ) { progFunc = ProgFuncBase.CreateInstance(progFuncType); } return result .Concat(BitConverter.GetBytes(duration)) .Concat(BitConverter.GetBytes((int)progFuncType)) .Concat(progFunc.Serialize()).ToArray(); }
/// <summary> /// �C���X�y�N�^���GUI��`�悷�� /// </summary> public override void DrawGUI() { base.DrawGUI(); duration = UnityEditor.EditorGUILayout.FloatField("Duration", duration); var prevType = progFuncType; progFuncType = (ProgFuncBase.FuncType)UnityEditor.EditorGUILayout.EnumPopup("Function", progFuncType); if ( progFuncType != prevType || progFunc == null ) { // �^���ύX���ꂽ progFunc = ProgFuncBase.CreateInstance(progFuncType); } progFunc.DrawGUI(); }