component activate on timer

is it possible to change the if(Input.GetKeyUp(KeyCode.F5)) into a timer of some sort i only need it to runs once and the rest of the script should still enable it

enable script i use to activate currently

EnableTargeting script

using UnityEngine;
using System.Collections;

public class EnableTargetting : MonoBehaviour
{
private Targetting myTarget;

void Start ()
{
    myTarget = GetComponent<Targetting>();
}


void Update ()
{
    if(Input.GetKeyUp(KeyCode.F5))
    {
        myTarget.enabled = !myTarget.enabled;
    }
}

}

In C#, Coroutines are the standard method for timer-based logic.

Specifically, check out “WaitForSeconds(float sec)”

This example from the documentation is essentially what you need:

IEnumerator DoCheck() {
	for(;;) {
		ProximityCheck;
		yield return new WaitForSeconds(.1f);
	}
}

Just call StartCoroutine(“DoCheck”) once inside your Start() or Awake() method

I use Javascript and the way I quickly do timers is by logging a start time and wait amount and checking if the current time is greater than the sum of both.

JS:

var startTime:float;
var waitInSeconds:float;

function Start(){
     startTime = Time.time;
}   

function Update(){
     if(Time.time > startTime + waitInSeconds){
          //run code
     }
}

C# – Use this as a stand-alone component to add another component after specified time.

using UnityEngine;
using System.Collections;

public class timer : MonoBehaviour {
	public float waitInSeconds = 1.0F;
	public float startTime;
	
	// Use this for initialization
	void Start(){
		startTime = Time.time;
	}
	
	// Update is called once per frame
	void Update(){
		if(Time.time > startTime + waitInSeconds){
			gameObject.AddComponent("nameOfScript");
			Destroy (this);
		}
	}
}