Successive Coroutines in C#

Hello.

I would like to have following function

void DoAIBehaviour()
{
   StartCoroutine(ai.moveToObject);
   StartCoroutine(ai.jump);
   StartCoroutine(ai.moveBack);
}

Is there a way to do this?

Yes.

void DoAIBehaviour()
{
    StartCoroutine( ReallyDoAIBehaviour() );
}

IEnumerator ReallyDoAIBehaviour()
{
    yield return StartCoroutine( ai.MoveToObject() );
    yield return StartCoroutine( ai.Jump() );
    yield return StartCoroutine( ai.MoveBack() );
}

Once you're inside a coroutine, you don't need to call StartCoroutine anymore (unless you really do want to start a new coroutine):

Try this:

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {
    // Use this for initialization
    void Start () {
        StartCoroutine(Load());
    }

    public IEnumerator Load()
    {
        UnityEngine.Application.ExternalEval("alert('start test');");

        while (!CookieCutterCSharp.IsLoaded())
        {
            yield return WaitForSeconds(0.1f);
        }

        UnityEngine.Application.ExternalEval("alert('cookies loaded');");

        Debug.Log("yaoo");

        UnityEngine.Application.ExternalEval("alert('yaoo');");

        string url = "http://www.google.com";

        WWW www = new WWW(url);

        yield return www;

    }

    // Update is called once per frame
    void Update () {

    }
}

K.

This is still not working for me. I don't understand why i'm getting stuck on the web request. If I do just the web request it's find, but mixing checking cookies and loading a web page seem to not work.

This code below gets stuck on the web request

// Use this for initialization
void Start () {

    StartCoroutine(Load());
}

public IEnumerator Load()
{
    UnityEngine.Application.ExternalEval("alert('start test');");

    while (!CookieCutterCSharp.IsLoaded())
    {
        yield return StartCoroutine(WaitFor(0.1f));
    }

    UnityEngine.Application.ExternalEval("alert('cookies loaded');");

    Debug.Log("yaoo");

    UnityEngine.Application.ExternalEval("alert('yaoo');");

    string url = "http://www.google.com";

    WWW www = new WWW(url);

    yield return StartCoroutine(WaitForRequest(www));

}

// Update is called once per frame
void Update () {

}

IEnumerator WaitForRequest(WWW www)
{
    yield return www;

    UnityEngine.Application.ExternalEval("alert('" + www.data + "');");
}

IEnumerator WaitFor(float sec)
{
    yield return new WaitForSeconds(sec);
}