Beispiel #1
0
 void Update()
 {
     if (!_opGrabber.IsGrabbed())
     {
         if (_forcedDrop)
         {
             ReturnToParent();
         }
     }
 }
Beispiel #2
0
    void Update()
    {
        if (_opGrabber.IsGrabbed())
        {
            _backToPlace = false;
            if (!Blocked || (Blocked && !Closed))
            {
                Closed = Vector3.Distance(DrawerModel.transform.position,
                                          MinDistance.position) <
                         _cachedTotalOpenningGap * 0.1f;

                if (Vector3.Dot(transform.position - MaxDistance.position, MaxDistance.forward) < 0)
                {
                    DrawerModel.transform.position = MaxDistance.position;
                }
                else if (Vector3.Dot(transform.position - MinDistance.position,
                                     MinDistance.forward) > 0)
                {
                    DrawerModel.transform.position = MinDistance.position;
                }
                else
                {
                    DrawerModel.transform.position += DrawerModel.transform.forward *
                                                      Vector3.Dot(transform.position - DrawerModel.transform.position,
                                                                  DrawerModel.transform.forward);
                }
            }
        }
        else if (!_backToPlace)
        {
            ResetPosition();
        }
    }