Why am I only allowed to trigger my dash script once?

I have a player movement controller script and a dash script. The movement controller turns on the dash script whenever space is pressed but for some reason it only works once. It won’t let me do it a second time. Can anyone tell me why?

Here’s the movement controller:

#pragma strict

var originalMoveSpeed : float;
var moveSpeed : float;
var dashSpeed : float;
var clampRadius : float;
var walkSpeed : float;
var isDashing : boolean;
var rb2D : Rigidbody2D;
var movement : Vector2;
var playerObject : GameObject;

function Update () {
	
	movement.x = Input.GetAxisRaw("Horizontal");
	movement.y = Input.GetAxisRaw("Vertical");
	
}

function FixedUpdate () {
	
	//normalize movement
	if (movement.magnitude > 1) {
		movement = movement.normalized;
	}
	
	//move
	rb2D.MovePosition(rb2D.position + movement * moveSpeed * Time.fixedDeltaTime);
	movement = Vector3.ClampMagnitude(movement, clampRadius);
	
	//dash
	if(Input.GetKeyDown(KeyCode.Space) && playerObject.GetComponent(playerDash).enabled == false) {
		playerObject.GetComponent(playerDash).enabled = true;
	}
	//walk
	if(Input.GetKey(KeyCode.LeftShift) == true && !Input.GetKeyDown(KeyCode.Space) == true) {
		moveSpeed = walkSpeed;
	}
	else {
		moveSpeed = originalMoveSpeed;
	}
	
	
}

Here’s the dash script:

#pragma strict

var dashSpeed : float;
var dashTime : float;
var isDashing : boolean;
var playerObject : GameObject;

function Start () {
	isDashing = true;
	playerObject = GameObject.Find("player");
	yield WaitForSeconds(dashTime);
	isDashing = false;
}

function Update () {
	
	if(isDashing == true) {
		playerObject.GetComponent(playerMovement).moveSpeed = dashSpeed;
	}
	
	else {
		playerObject.GetComponent(playerMovement).moveSpeed = playerObject.GetComponent(playerMovement).originalMoveSpeed;
		playerObject.GetComponent(playerDash).enabled = false;
	}
}

Fixed it. Here’s the working dash script:

#pragma strict

var dashSpeed : float;
var dashTime : float;
var isDashing : boolean;
var playerObject : GameObject;

function PlayerDash () {
	isDashing = true;
	playerObject = GameObject.Find("player");
	yield WaitForSeconds(dashTime);
	isDashing = false;
}

function OnEnable () {
	
	PlayerDash();
	
}

function Update () {
	
	if(isDashing == true) {
		playerObject.GetComponent(playerMovement).moveSpeed = dashSpeed;
	}
	
	else {
		playerObject.GetComponent(playerMovement).moveSpeed = playerObject.GetComponent(playerMovement).originalMoveSpeed;
		playerObject.GetComponent(playerDash).enabled = false;
	}
}

It is triggered once because start method is called only once. Use OnEnable() instead.