Ejemplo n.º 1
0
 private void SwitchDimensions()
 {
     DimensionChanger.SwitchCameraRender(this.mainCamera, FromDimension().layer, ToDimension().layer, ToDimension().customSkybox);
     DimensionChanger.SwitchDimensions(this.mainCamera.gameObject, FromDimension(), ToDimension());
     ToDimension().SwitchConnectingPortals();
     if (OnSwitchedDimensions != null)
     {
         OnSwitchedDimensions.Invoke(ToDimension().name);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    ///  Call this method to instantly switch between dimensions. This will switch the Main Character (IE: the main camera) as well.
    /// </summary>
    public void SwitchDimensions()
    {
        DimensionChanger.SwitchCameraRender(this.mainCamera, FromDimension().layer, ToDimension().layer, ToDimension().customSkybox);
        DimensionChanger.SwitchDimensions(this.mainCamera.gameObject, FromDimension(), ToDimension());

        if (this.rightCamera != null)
        {
            DimensionChanger.SwitchCameraRender(this.rightCamera, FromDimension().layer, ToDimension().layer, ToDimension().customSkybox);
            DimensionChanger.SwitchDimensions(this.rightCamera.gameObject, FromDimension(), ToDimension());
        }

        ToDimension().SwitchConnectingPortals();
    }
Ejemplo n.º 3
0
    /* Objects with colliders */
    void OnTriggerStay(Collider other)
    {
        RigidbodyCollider curCollider = null;

        foreach (RigidbodyCollider col in colliders)
        {
            if (col.collider == other)
            {
                curCollider = col;
                break;
            }
        }

        if (curCollider != null)
        {
            Vector3 convertedPoint = transform.InverseTransformPoint(other.transform.position);
            if ((convertedPoint.z > 0) != curCollider.triggerZDirection)
            {
                if (other.gameObject.layer == FromDimension().layer)
                {
                    DimensionChanger.SwitchDimensions(other.gameObject, FromDimension(), ToDimension());
                }
                else
                {
                    DimensionChanger.SwitchDimensions(other.gameObject, ToDimension(), FromDimension());
                }
            }

            if (!isDeforming)               // don't deform if we are right up against it
            {
                Vector3 transformPosition = other.transform.position;
                if (Mathf.Abs(convertedPoint.z) < maximumDeformRange)
                {
                    convertedPoint.z += triggerZDirection ? maximumDeformRange : -maximumDeformRange;
                    transformPosition = transform.TransformPoint(convertedPoint);
                }
                meshDeformer.AddDeformingForce(transformPosition, deformPower);
            }
        }
    }
Ejemplo n.º 4
0
    void HandleTransition(PortalTransitionObject transitionObject)
    {
        if (!this.transitionObjects.Contains(transitionObject))
        {
            if (CameraExtensions.CameraForObject(transitionObject.gameObject) != mainCamera && (ignoreRigidbodyTag == "" || !transitionObject.gameObject.CompareTag(ignoreRigidbodyTag)))
            {
                transitionObject.triggerZDirection = (transform.InverseTransformPoint(transitionObject.transform.position).z > 0);
                this.transitionObjects.Add(transitionObject);
            }
        }

        Vector3 convertedPoint = transform.InverseTransformPoint(transitionObject.transform.position);

        if ((convertedPoint.z > 0) != transitionObject.triggerZDirection)
        {
            if (transitionObject.gameObject.layer == FromDimension().layer)
            {
                DimensionChanger.SwitchDimensions(transitionObject.gameObject, FromDimension(), ToDimension());
            }
            else
            {
                DimensionChanger.SwitchDimensions(transitionObject.gameObject, ToDimension(), FromDimension());
            }
            transitionObject.triggerZDirection = !transitionObject.triggerZDirection;
        }

        if (!isDeforming)   // Only deform if the main camera isn't deforming.
        {
            Vector3 transformPosition = transitionObject.transform.position;
            if (Mathf.Abs(convertedPoint.z) < maximumDeformRange)
            {
                convertedPoint.z += triggerZDirection ? maximumDeformRange : -maximumDeformRange;
                transformPosition = transform.TransformPoint(convertedPoint);
            }
            meshDeformer.AddDeformingForce(transformPosition, deformPower);
        }
    }
Ejemplo n.º 5
0
 private void SwitchDimensions()
 {
     DimensionChanger.SwitchCameraRender(this.mainCamera, FromDimension().layer, ToDimension().layer, ToDimension().customSkybox);
     DimensionChanger.SwitchDimensions(this.mainCamera.gameObject, FromDimension(), ToDimension());
     ToDimension().SwitchConnectingPortals();
 }