Why can I not control my character after my intro cut-scene? C#

I made an animation of an intro cut-scene to my game. The scene turned out great and the script I wrote prevents the character model from showing itself during the cut-scene but once it’s over I can’t control it again. Even the camera’s won’t go back to normal. What am I doing wrong? I thought it was the “StartCoroutine” at first but even with that marked out it still wont work!

I’ll post my code below.

public class CameraSwitch : MonoBehaviour {

	public Camera camera1;

	public Camera camera2;

	Animator anim;

	// Use this for initialization
	void Start () 
	{
		GameObject.Find ("Player Avatar").SetActive (false);
		camera1.enabled = false;
		camera2.enabled = true;
		anim = camera2.GetComponent<Animator> ();
		anim.Play ("Animator");
		StartCoroutine (MyMethod());
		mainCameraSwitch ();
	}
	

	IEnumerator MyMethod()
	{
		yield return new WaitForSeconds (2);

	}

	void mainCameraSwitch()
	{
		GameObject.Find ("Player Avatar").SetActive (true);
		camera1.enabled = true;
		camera2.enabled = false;
	}
}

Did you want mainCameraSwitch to actually wait for the coroutine? When you start a CoRoutine, that method you called it from keeps executing. Think of a coroutine like a thread. You “start” it from one method, and it then goes and runs on another thread, allowing the method you called it from to keep on executing. So you essentially do nothing with the Coroutine here.

if you wanted to start the co-routine, then wait 2 seconds, then execute mainCameraSwitch, then you want to make the call to mainCameraSwitch from your IEnumerator, after the waitforseconds call.

I suspect this code isn’t really your culprit. Other than the useless coroutine execution it looks ok.