void PickFromDistance(Vector3 origin, float distance, Action <List <ISpatialObject> > callback, string[] flagsExcluded = null) { var pickingLogic = new PickFromDistance(origin, distance); var rpc = m_SpatialPickingOutput.Call((object)null, (object)null, (object)null, new SpatialPickingArguments(pickingLogic, flagsExcluded)); rpc.Success <List <ISpatialObject> >((self, ctx, userCtx, result) => { callback(result); }); rpc.Failure((self, ctx, userCtx, ex) => { Debug.LogException(ex); }); }
void PickFromDistance(Vector3 origin, float distance, List <ISpatialObject> results, string[] flagsExcluded = null) { results.Clear(); var pickingLogic = new PickFromDistance(origin, distance); var cc = new ConditionCapture <bool>(false); var rpc = m_SpatialPickingOutput.Call((object)null, (object)null, cc, new SpatialPickingArguments(pickingLogic, flagsExcluded)); rpc.Success <List <ISpatialObject> >((self, ctx, cc, result) => { results.AddRange(result); cc.Data = true; }); rpc.Failure((self, ctx, cc, ex) => { Debug.LogException(ex); cc.Data = true; }); m_Runner.ProcessUntil(cc, c => c.Data); }