// 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); } } }
// 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); } } }