Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 22.08.2013
Сообщений: 38
1

Coroutines (сопрограммы)

19.10.2017, 23:06. Показов 1865. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа опытные программисты подскажите, что есть сопрограммы, какова логика их работы? Пожалуйста!

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Update() 
{
    if (Input.GetMouseButtonDown(0)) 
    {
        Vector3 point = new Vector3(_camera.pixelWidth/2, _camera.pixelHeight/2, 0);
        Ray ray = _camera.ScreenPointToRay(point);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit)) 
        {
             StartCoroutine(SphereIndicator(hit.point)); 
        }
    }
}
 
private IEnumerator SphereIndicator(Vector3 pos) 
{ 
    GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
    sphere.transform.position = pos;
    yield return new WaitForSeconds(1); 
    Destroy(sphere); 
}
Как я понимаю корутина должна нам вернуть ссыль на объект типа IEnumerator. Но где в коде она это делает?
yield - мы возвращаем управление основной программе, при этом делаем return ссылки на некий объект типа WaitForSeconds. Куда она его при этом return-ет? и что с ним там происходит?
Нафига нам корутина должна возвращать IEnumerator если мы его не пользуем?
Не проблема скопировать код и использовать. Но хочется понять как это работает внутрях
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.10.2017, 23:06
Ответы с готовыми решениями:

Сопрограммы c++ DOS
Помогите, пожалуйста, разобраться в коде. Программа создает 3 сопрограммы и крутит их по кругу. В...

Сопрограммы для Turbo Pascal
Теория на википедии: Сопрограммы Модуль: Unit CoRoutin; interface type TCoRoutine =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
0
19.10.2017, 23:06
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru