예제 #1
0
        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);
            });
        }
예제 #2
0
        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);
        }