示例#1
0
 private void _UpdateAnchorTrackingState(AnchorTrackingState trackingState, List <AnchorRecord> anchorRecords)
 {
     for (int i = 0; i < anchorRecords.Count; i++)
     {
         anchorRecords[i].m_updateTrackingState(trackingState);
     }
 }
示例#2
0
    private void Update()
    {
        if (Anchor.isLocated)
        {
            TrackingState = AnchorTrackingState.Located;
            anchorVisual.transform.position = Anchor.transform.position;
            anchorVisual.transform.rotation = Anchor.transform.rotation;
        }
        else
        {
            DeducePosition();
        }

        UpdateColor();
    }
示例#3
0
    private void DeducePosition()
    {
        List <Tuple <string, SerializableVector3> > offsetList = GameMaster.Instance.GetOffsetList(AnchorId);

        if (offsetList == null)
        {
            TrackingState = AnchorTrackingState.Lost;
            return;
        }

        int     count             = Math.Min(offsetList.Count, offsetDeductionLimit);
        Vector3 average           = Vector3.zero;
        int     otherAnchorNumber = 0;

        for (int index = 0; index < count; index++)
        {
            string        otherId            = offsetList[index].Item1;
            AnchorHandler otherAnchorHandler = GameMaster.Instance.GetAnchorHandler(otherId);
            if (otherAnchorHandler.TrackingState != AnchorTrackingState.Lost)
            {
                Vector3 offset = offsetList[index].Item2.ToVector3();
                average += otherAnchorHandler.AnchorVisualTransform.position + offset;
                otherAnchorNumber++;
            }
        }
        if (otherAnchorNumber > 0)
        {
            average /= otherAnchorNumber;
            anchorVisual.transform.position = average;
            TrackingState = AnchorTrackingState.LocationDeduced;
        }
        else
        {
            TrackingState = AnchorTrackingState.Lost;
        }
    }
示例#4
0
 private void _UpdateTrackingState(AnchorTrackingState trackingState)
 {
     TrackingState = trackingState;
     gameObject.SetActive(TrackingState == AnchorTrackingState.Tracking);
 }