private bool TryFixTo(Destroyable newDestructible)
        {
            var isDifferent = destructible != newDestructible;

            transform.SetParent(newDestructible.transform, false);

            var worldPosition = transform.TransformPoint(Offset);

            if (newDestructible.SampleAlpha(worldPosition) > 0.5f)
            {
                if (isDifferent == true)
                {
                    Unhook();

                    destructible = newDestructible;

                    Hook();
                }

                return(true);
            }

            transform.SetParent(destructible.transform, false);

            return(false);
        }
        private void UpdateFixture()
        {
            if (destructible == null)
            {
                destructible = GetComponentInParent <Destroyable>();
            }

            if (destructible == null)
            {
                DestroyFixture();
            }
            else
            {
                var worldPosition = transform.TransformPoint(Offset);

                if (destructible.SampleAlpha(worldPosition) < 0.5f)
                {
                    DestroyFixture();
                }
            }
        }