2015-06-28 2 views
1

Я полный новичок в единстве, и я Тринг, чтобы играть анимацию с сопрограммой, но получить следующую erros:Unity3D сопрограммная ошибка компилятор

1.error CS1502: лучший перегруженный матч метода для UnityEngine.MonoBehaviour.StartCoroutine(System.Collections.IEnumerator)' has some invalid arguments 2.error CS1503: Argument # 1' не может преобразовать System.Collections.IEnumerable' expression to type System.Collections.IEnumerator»


код:

 using UnityEngine; 
using System.Collections; 

public class Trap : MonoBehaviour { 

    //public float delayTime; 


    // Use this for initialization 
    void Start() { 
     StartCoroutine (Go()); 
    } 

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

    } 

    IEnumerable Go(){ 
     while (true) { 
      animation.Play(); 
      yield return new WaitForSeconds(3f); 
     } 
    } 

} 
+0

Используя приведенные ответы, также просмотрите сообщение об ошибке, которое вы отправили. Это показало вам, что было не так. Постарайтесь научиться извлекать смысл из сообщения об ошибке. В зависимости от того, какой редактор вы используете, он может даже предложить исправления. –

ответ

5

изменение

IEnumerable Go(){ 
    while (true) { 
     animation.Play(); 
     yield return new WaitForSeconds(3f); 
    } 
} 

для IEnumerator ...

IEnumerator Go(){ 
    while (true) { 
     animation.Play(); 
     yield return new WaitForSeconds(3f); 
    } 
} 
+0

Если вы хотите знать, почему ошибка очень ясна ... при вызове StartCoroutine() вам нужно добавить аргумент типа: System.Collections.IEnumerator ... и потому, что вы объявили «GO» как IEnumerable, вот почему вы получаете эту ошибку .... –

0

Возвращаемый тип для сопрограммная будет IEnumerator.

Смежные вопросы