void LateUpdate() { #if ENABLE_ENTITIES if (entitiesEnabled) { return; } #endif if (m_CurrentDeformSprite != sprite) { DeactivateSkinning(); m_CurrentDeformSprite = sprite; } if (isValid) { var inputVertices = deformedVertices; var transformHash = SpriteSkinUtility.CalculateTransformHash(this); if (inputVertices.Length > 0 && m_TransformsHash != transformHash) { SpriteSkinUtility.Deform(sprite, gameObject.transform.worldToLocalMatrix, boneTransforms, ref inputVertices); SpriteSkinUtility.UpdateBounds(this); InternalEngineBridge.SetDeformableBuffer(spriteRenderer, inputVertices); m_TransformsHash = transformHash; m_CurrentDeformSprite = sprite; } } }
internal bool GetSpriteSkinBatchData(ref SpriteSkinBatchData data) { if (m_CurrentDeformSprite != sprite) { DeactivateSkinning(); m_CurrentDeformSprite = sprite; } if (isValid) { Profiler.BeginSample("SpriteSkin.UpdateBounds"); SpriteSkinUtility.UpdateBounds(this); Profiler.EndSample(); data.sprite = sprite; data.boneTransform = boneTransforms; Profiler.BeginSample("SpriteSkin.worldToLocalMatrix"); data.worldToLocalMatrix = gameObject.transform.worldToLocalMatrix; Profiler.EndSample(); return(true); } return(false); }