public void StartWatch() { _components = Object.FindObjectsOfType <MoveComponent>().ToList(); HeadChange.SafeInvoke(_components[0]); _disposable = Observable.EveryUpdate().Subscribe(x => { var ordered = _components.OrderByDescending(y => y.TraveledDistance).ToList(); FindHead(ordered); FindKicked(ordered); }); }
private void FindHead(List <MoveComponent> ordered) { if (!ordered.Any()) { return; } var head = ordered.First(); HeadChange.SafeInvoke(head); _head = head; }