How can I call this player transform.position code once, then stop?

Hi all, I am using the following code to move my player to the check point (after death, if the check point is cleared). That works fine, but then the player is stuck at the check point transform position. Any suggestions on how to get my player moving freely again after moving to the check point? Thanks!

 void  Start (){
    				
    		if (checkPoint >= 1) {
    			gameObject.transform.position = currentCheckPoint.transform.position;
    			}
    		} 

And...

    public class CheckPointScript : MonoBehaviour {
    
    	void OnCollisionEnter2D(Collision2D collision) {
    
    		if (collision.gameObject.tag == "Player"){
    		MainScript myPlayer = (MainScript) GameObject.Find("Player").GetComponent("MainScript");
    		myPlayer.currentCheckPoint.transform.position = this.transform.position;
    		}
    }
    }

Have you got anything checking whether your character should be able to move or not? Maybe you declare the character as unmovable once they die and you’re not changing that back upon respawn?

I think what you need to do is disable the checkpoint after the player has re-spawned. Because right now, it looks like when the player touches the checkpoint he is being constantly reset to the checkpoint position. So just turn off the checkpoint once it’s been touched by the player?