Exemplo n.º 1
0
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.F) && !inFullSlomo)
     {
         DoStasis();
     }
     //if an object is in stasis, release it if necessary.
     if (lastObject)
     {
         //square magnitude check for distance because its faster than magnitude.
         if (Input.GetKeyDown(KeyCode.R) || (transform.position - lastObject.transform.position).sqrMagnitude > sqrRange)
         {
             lastObject.SetStasis(false);
             lastObject = null;
         }
         //test adding a force to the object in stasis.
         if (Input.GetMouseButtonDown(1))
         {
             //test
             if (Physics.Raycast(pivot.position, pivot.forward, out RaycastHit hit, range, mask))
             {
                 if (hit.transform.TryGetComponent <StasisObject>(out StasisObject so))
                 {
                     if (lastObject == so)
                     {
                         so.AddImpulse(pivot.forward);
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        IEnumerator CheckForStasisObject(Coroutine slomoRoutine)
        {
            float startTime = Time.unscaledTime;

            while (Time.unscaledTime - startTime < 5) //max 5 seconds
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (Physics.Raycast(pivot.position, pivot.forward, out RaycastHit hit, range, mask))
                    {
                        if (hit.transform.TryGetComponent <StasisObject>(out StasisObject so))
                        {
                            if (lastObject)
                            {
                                lastObject.SetStasis(false);
                            }
                            so.SetStasis(true);
                            //Debug.Log("Set Stasis", so);
                            lastObject = so;

                            break;
                        }
                    }
                }
                yield return(null);
            }
            if (!inFullSlomo)
            {
                StopCoroutine(slomoRoutine);
            }
            inFullSlomo = false;
            var c = slomoOverlay.color;

            c.a = 0;
            slomoOverlay.color = c;
            Time.timeScale     = 1f;
        }