Unity Callback Delegate for a puzzle game

Viewed 53

Currently working to an extremely basic set up of a puzzle game in unity. I've currently worked the draggable element on the sprites which is fully functional.

However, the puzzle slot function itself is not functioning, even with a debug.log print, the actual position snapping isn't functional.

If anyone has any suggestions that would be great

public class SnapControl : MonoBehaviour
{
    public List<Transform> snapPoints;
    public List<Draggable> draggableObjects;
    public float snapRange = 0.5f;

    void Start ()
    {
        print("StartUp");
        foreach(Draggable draggable in draggableObjects)
        {
            print("draggable");
            draggable.dragEndedCallback = OnDragEnded;
        }
    }

//functional up until here

    private void OnDragEnded(Draggable draggable)
    {
        print("Start");
        float closestDistance = -1;
        Transform closestSnapPoint = null;

        foreach(Transform snapPoint in snapPoints)
        {
            print("snapPoint");
            float currentDistance = Vector2.Distance(draggable.transform.localPosition, snapPoint.localPosition);
            if(closestSnapPoint == null || currentDistance < closestDistance)
            {
                closestSnapPoint = snapPoint;
                print( "== Null" + snapPoint);
                closestDistance = currentDistance;
                print( "== Null" + currentDistance);
            }
        }
        if(closestSnapPoint != null && closestDistance <= snapRange)
        {
            draggable.transform.localPosition = closestSnapPoint.localPosition;
            print( "!= Null");
        }
    }
}

Code in question

0 Answers
Related