Когда проходят первые сложности привыкания к Unity,  стиль программирования может меняться, отходя от стандартных Монобехов.

К примеру, я часто использую классы, не наследованные от MonoBehaviour. Самое неудобное, что в данном случае пропадает возможность использовать мои любимые коратины..

Или нет?

Вот небольшое комбо, возвращающая нам эту возможность :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//Created by Neodrop
//neodrop@unity3d.ru
using System.Collections;
using UnityEngine;

public class CoroutineExternal : MonoBehaviour
{
    public delegate void MethodDelegate();

    public MethodDelegate del;
    public float timeToCoroutine;

    public static void Create( float timeToCoroutine, MethodDelegate del )
    {
        CoroutineExternal ce = new GameObject("External Coroutine Unit", typeof(CoroutineExternal)).GetComponent<CoroutineExternal>();
        ce.del = del;
        ce.timeToCoroutine = timeToCoroutine;
    }

    IEnumerator Start ()
    {
        yield return new WaitForSeconds(timeToCoroutine);
        del();
        Destroy(gameObject);
    }
}

При вызове статического конструктора Create, создаётся временный GameObject с прицепленным к нему скриптом, который, по истечении времени коратины, вызовет, переданного ему, делегата и уничтожит сам себя.
Просто определите свой тип делегата и подправьте метод Create под свои нужды.

VN:F [1.9.3_1094]
Rating: 10.0/10 (1 vote cast)
VN:F [1.9.3_1094]
Rating: +1 (from 1 vote)
.NET Джиу-джитсу : Использование Coroutine из не Monobeh классов, 10.0 out of 10 based on 1 rating

3 комментария на «.NET Джиу-джитсу : Использование Coroutine из не Monobeh классов»

  1. Reginald

    bonjour@imperialists.unsightly” rel=”nofollow”>.…

    благодарствую!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  2. Anthony

    chaw@confronting.transcript” rel=”nofollow”>.…

    спс!…

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)
  3. Travis

    unconstitutional@emeralds.schlieren” rel=”nofollow”>.…

    спс за инфу….

    VA:F [1.9.3_1094]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.3_1094]
    Rating: 0 (from 0 votes)

Ваш отзыв

Вы должны войти, чтобы оставлять комментарии.



Страница 1 of 0