Пример #1
0
    // Called when first touches portal
    public virtual void EnterPortalThreshold()
    {
        if (GraphicsClone == null)
        {
            GraphicsClone = Instantiate(GraphicsObject);
            GraphicsClone.transform.parent     = GraphicsObject.transform.parent;
            GraphicsClone.transform.localScale = GraphicsObject.transform.localScale;
            OriginalMaterials = GetMaterials(GraphicsObject);
            CloneMaterials    = GetMaterials(GraphicsClone);
        }
        else
        {
            GraphicsClone.SetActive(true);
        }

        if (GraphicsObject2)
        {
            if (GraphicsClone2 == null)
            {
                GraphicsClone2 = Instantiate(GraphicsObject2);
                GraphicsClone2.transform.parent     = GraphicsObject2.transform.parent;
                GraphicsClone2.transform.localScale = GraphicsObject2.transform.localScale;
                OriginalMaterials2 = GetMaterials(GraphicsObject2);
                CloneMaterials2    = GetMaterials(GraphicsClone2);
            }
            else
            {
                GraphicsClone2.SetActive(true);
            }
        }
    }
Пример #2
0
    // Called once no longer touching portal (excluding when teleporting)
    public virtual void ExitPortalThreshold()
    {
        GraphicsClone.SetActive(false);
        if (GraphicsObject2)
        {
            GraphicsClone2.SetActive(false);
        }
        // Disable slicing
        for (int i = 0; i < OriginalMaterials.Length; i++)
        {
            OriginalMaterials[i].SetVector("sliceNormal", Vector3.zero);
        }

        if (GraphicsObject2)
        {
            for (int i2 = 0; i2 < OriginalMaterials2.Length; i2++)
            {
                OriginalMaterials2[i2].SetVector("sliceNormal", Vector3.zero);
            }
        }
    }