Neodrop писал(а):Вот спасибо. Пригляжусь
Если кто-то хочет попробовать - есть пара хитростей по присоединению Rx к Unity:
- У Rx нет официальной сборки для Mono, но версия для XNA 4.0 подходит идеально.
Если пользоваться MonoDevelop - все работает прямо из коробки, но если пользоваться VisualStudio - нужны dll со стертыми подписями (на самом деле нужно подхачить IL, т.к. там прописаны права доступа к `internal` между сборками).
Я сделал такие для версии 1.0.2787.0 (+ там лежит RxHost singleton, UnityScheduler и обертки Unity... , которые запускают time-based Observable методы через UnityScheduler).
Брать тут:
http://goo.gl/znwcyhttps://github.com/zoon/NUnitLiteUnityRunner/downloadsPS. выложил на Kongregate старую демку "Time Flies Like an Arrow" (это такой "Hello World" для Rx)
http://www.kongregate.com/games/z00n/ti ... e-an-arrowКаждая следующая буква получает координату мыши со сдвигом во времени.
Интересная часть кода:
Используется csharp
...
private void Start()
{
_mousePositions = new Vector2[TimeFliesLikeAnArrow.Length];
for (var i = 0; i < _mousePositions.Length; i++)
{
var ii = i;
_subscriptions.Add(
// Magic happens here:
RxHost.Instance.GUIEvents
.Where(e => e.type == EventType.mouseMove)
.UnityDelay(TimeSpan.FromMilliseconds(ii*100))
.Subscribe(e => _mousePositions[ii] = e.mousePosition)
);
}
}
Последний раз редактировалось
zoon 22 фев 2011, 23:16, всего редактировалось 2 раз(а).