コード例 #1
0
ファイル: EasyMotion2D.cs プロジェクト: etenbuy/EasyMotion
 /// <summary>
 /// �V���A���C�Y���ꂽ���[�V�����f�[�^����C���X�^���X�𐶐�����
 /// </summary>
 private void Awake()
 {
     // �f�[�^�̃f�V���A���C�Y
     motion = GetDeserializedMotion(type, serializedMotion);
     rotation = RotationBase2D.GetDeserializedRotation(rotationType, serializedRotation);
     rotation.motion = motion;
 }
コード例 #2
0
ファイル: RotationBase2D.cs プロジェクト: etenbuy/EasyMotion
 /// <summary>
 /// �V�K�̎��s����]����I�u�W�F�N�g�𐶐�����
 /// </summary>
 /// <param name="type"></param>
 /// <returns></returns>
 public static RotationBase2D CreateInstance(RotationBase2D.RotationType type)
 {
     var rotation = Activator.CreateInstance(runtimeType[type]) as RotationBase2D;
     rotation.type = type;
     return rotation;
 }
コード例 #3
0
    /// <summary>
    /// �C���X�y�N�^���GUI��`�悷��
    /// </summary>
    public override void DrawGUI()
    {
        base.DrawGUI();

        if ( motion == null ) {
            motion = EasyMotion2D.CreateInstance(EasyMotion2D.MotionType.Stop);
        }
        if ( rotation == null ) {
            rotation = RotationBase2D.CreateInstance(RotationBase2D.RotationType.None);
        }

        var curMotionType = EasyMotion2D.GetSerializedType(motion.GetType());
        var newMotionType = (EasyMotion2D.MotionType)UnityEditor.EditorGUILayout.EnumPopup("Motion Type", curMotionType);
        if ( newMotionType != curMotionType ) {
            motion = EasyMotion2D.CreateInstance(newMotionType);
        }

        motion.DrawGUI();

        var curRotationType = RotationBase2D.GetSerializedType(rotation.GetType());
        var newRotationType = (RotationBase2D.RotationType)UnityEditor.EditorGUILayout.EnumPopup("Rotation Type", curRotationType);
        if ( newRotationType != curRotationType ) {
            rotation = RotationBase2D.CreateInstance(newRotationType);
        }

        rotation.DrawGUI();
    }
コード例 #4
0
    /// <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);

        motionType = (EasyMotion2D.MotionType)BitConverter.ToInt32(bytes, offset);
        offset += sizeof(int);
        motion = EasyMotion2D.GetDeserializedMotion(motionType, bytes, offset, out offset);

        rotationType = (RotationBase2D.RotationType)BitConverter.ToInt32(bytes, offset);
        offset += sizeof(int);
        rotation = RotationBase2D.GetDeserializedRotation(rotationType, bytes, offset, out offset);

        return offset;
    }
コード例 #5
0
    /// <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 ( motion == null ) {
            motion = EasyMotion2D.CreateInstance(EasyMotion2D.MotionType.Stop);
        }
        if ( rotation == null ) {
            rotation = RotationBase2D.CreateInstance(RotationBase2D.RotationType.None);
        }

        var motionType = EasyMotion2D.GetSerializedType(motion.GetType());
        var rotationType = RotationBase2D.GetSerializedType(rotation.GetType());

        result = result
            .Concat(BitConverter.GetBytes((int)motionType))
            .Concat(motion.Serialize())
            .Concat(BitConverter.GetBytes((int)rotationType))
            .Concat(rotation.Serialize()).ToArray();

        return result;
    }