private IEnumerator RunBridge(PushableObject p_objectToMove)
    {
        p_objectToMove.m_isOnBridge = true;

        p_objectToMove.gameObject.layer = m_transparentLayer;

        float t1 = 0;

        while (t1 < m_bridgeMoveTime)
        {
            t1 += Time.fixedDeltaTime;

            float progress = t1 / m_bridgeMoveTime;

            Vector3 targetPosition = Vector3.Lerp(transform.position, m_otherBridge.transform.position, progress);

            p_objectToMove.PhysicsSeekTo(targetPosition);

            yield return(new WaitForFixedUpdate());
        }

        float t2 = 0;

        Vector3 endTargetPos = m_otherBridge.transform.position + (Vector3.up * p_objectToMove.transform.localScale.y);

        while (t2 < m_endMoveTime)
        {
            t2 += Time.fixedDeltaTime;

            float progress = t2 / m_endMoveTime;

            Vector3 targetPosition = Vector3.Lerp(m_otherBridge.transform.position, endTargetPos, progress);

            p_objectToMove.PhysicsSeekTo(targetPosition);

            yield return(new WaitForFixedUpdate());
        }

        //p_objectToMove.m_velocity = Vector3.right * 30;

        PushGun pushGun = p_objectToMove.gameObject.GetComponent <PushGun>();

        if (pushGun == null)
        {
            p_objectToMove.gameObject.layer = m_moveableLayer;
        }
        else
        {
            p_objectToMove.gameObject.layer = 13;
        }



        //p_objectToMove.m_isOnBridge = false;
    }
Exemple #2
0
    public void PickupPushGun()
    {
        Collider[] colliders = Physics.OverlapSphere(transform.position, 3f, m_pushGunMask);

        if (colliders.Length > 0)
        {
            PushGun pushGunToPickup = colliders[0].GetComponent <PushGun>();

            if (!pushGunToPickup.m_isBeingCarried)
            {
                pushGunToPickup.transform.position = transform.position + (Vector3.up * 1);
                pushGunToPickup.transform.parent   = transform;

                m_carriedPushGun = pushGunToPickup;

                m_carriedPushGun.OnPickupObject();

                m_isCarryingObject = true;
            }
        }
    }