Exemplo n.º 1
0
        void UpdateHitbox(internalFrameData animdata, int anim, int frame)
        {
#if UNITY_EDITOR
            if (Application.isPlaying == false)
            {
                return;
            }
#endif

            m_CurrentAnimation = anim;
            m_CurrentFrame     = frame;
            internalHitboxData framedata = animdata.frame;
            // var nextframedata = animdata.nextframe;

            if (framedata.collider != null)
            {
                for (int i = 0; i < framedata.collider.Length; i++)
                {
                    var collider = framedata.collider[i];
                    var rect     = collider.rect;
                }
            }
        }
Exemplo n.º 2
0
        void UpdateHitbox(AnimationEvent _event)
        {
#if UNITY_EDITOR
            if (Application.isPlaying == false)
            {
                return;
            }
#endif

            if (!string.IsNullOrEmpty(_event.stringParameter))
            {
                internalFrameData animData = internalFrameData.Deserialize(_event.stringParameter);
                if (m_LastClip != _event.animatorClipInfo.clip)
                {
                    m_LastClip  = _event.animatorClipInfo.clip;
                    m_CurrentId = m_UID++;
                }

                m_LastFrame = _event.intParameter;

                UpdateHitbox(animData, Mathf.RoundToInt(_event.floatParameter), _event.intParameter);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// デシリアライズ
        /// /// </summary>
        /// <param name="s"></param>
        static public internalFrameData Deserialize(string s)
        {
            var data                 = Convert.FromBase64String(s);
            var serializedResult     = BinaryStructConverter.FromByteArray <serializableData>(data);
            var count                = serializedResult.numColliders;
            internalFrameData result = serializedResult;

            if (count > 0)
            {
                int sizeofFrame    = Marshal.SizeOf(typeof(serializableData));
                int sizeofCollider = Marshal.SizeOf(typeof(HitboxColliderData));
                var colliderArray  = new HitboxColliderData[count];

                for (int i = 0; i < count; i++)
                {
                    colliderArray[i] = BinaryStructConverter.FromByteArray <HitboxColliderData>(data, sizeofFrame + sizeofCollider * i);
                }

                result.frame.collider = colliderArray;
            }

            return(result);
        }