private void AddArClient(ArClient ar) { foreach (var web in _webClients.Get()) { AddEntry(ar, web); } }
private void AddEntry(ArClient ar, WebClient web) { _measurements.Add(new DistanceMeasure() { Ar = ar, Web = web, AvgDistance = DistanceBetween(ar, web) }); }
private void OnEnable() { _webClients = GetComponent <WebClientManager>(); _arClients = ArClientManager.Instance; ArClient.ModelCreated() .Subscribe(c => AddArClient(c)) .AddTo(_disposables); ArClient.ModelDestroyed() .Subscribe(c => RemoveArClient(c)) .AddTo(_disposables); WebClient.ModelCreated() .Subscribe(c => AddWebClient(c)) .AddTo(_disposables); WebClient.ModelDestroyed() .Subscribe(c => RemoveWebClient(c)) .AddTo(_disposables); }
private float DistanceBetween(ArClient ar, WebClient web) { return((ar.Target.position - web.transform.position).sqrMagnitude); }
private void RemoveArClient(ArClient client) { _measurements.RemoveAll(m => m.Ar == client); }