protected override void Awake() { base.Awake(); interactableObject = GetComponent <InteractableObject>(); if (interactableObject == null) { interactableObject = gameObject.AddComponent <InteractableObject>(); } Transform corporealCube = transform.Find("CorporealCube"); Transform invertedCube = transform.Find("InvertedCube"); pickupCube = GetComponent <PickupObject>(); corporealCubeDimensionObj = corporealCube.GetComponent <PillarDimensionObject>(); invertedCubeDimensionObj = invertedCube.GetComponent <PillarDimensionObject>(); cubeFrameRenderer = corporealCube.GetComponent <SuperspectiveRenderer>(); corporealGlassRenderer = corporealCube.Find("Glass").GetComponent <SuperspectiveRenderer>(); invertedCubeRenderer = invertedCube.GetComponent <SuperspectiveRenderer>(); raymarchRenderer = invertedCube.Find("Glass (Raymarching)").GetComponent <SuperspectiveRenderer>(); thisCollider = GetComponent <BoxCollider>(); defaultPhysicsMaterial = thisCollider.material; kinematicCollider = invertedCube.Find("KinematicCollider").GetComponent <BoxCollider>(); detectWhenPlayerIsNearCollider = invertedCube.Find("DetectPlayerIsNearCollider").GetComponent <BoxCollider>(); }
// Use this for initialization void Awake() { thisPillar = GetComponent <DimensionPillar>(); thisRenderer = GetComponent <SuperspectiveRenderer>(); optionalGlass = GetComponentInChildren <GlassGlow>(); wasActive = thisPillar.enabled; }
IEnumerator Start() { r = GetComponent <SuperspectiveRenderer>(); if (r == null) { r = gameObject.AddComponent <SuperspectiveRenderer>(); } yield return(null); startEmission = r.GetColor(emissionColorKey); }
// Use this for initialization void Start() { if (buttonToReactTo == null) { buttonToReactTo = GetComponent <Button>(); } if (buttonToReactTo == null) { Debug.LogWarning("No button to react to, disabling color change script", gameObject); enabled = false; return; } r = GetComponent <SuperspectiveRenderer>(); if (r == null) { r = gameObject.AddComponent <SuperspectiveRenderer>(); } if (useMaterialAsEndColor) { pressColor = r.GetMainColor(); pressEmission = r.GetColor("_EmissionColor"); } if (useMaterialAsStartColor) { startColor = r.GetMainColor(); startEmission = r.GetColor("_EmissionColor"); } else { r.SetMainColor(startColor); r.SetColor("_EmissionColor", startEmission); } buttonToReactTo.OnButtonPressFinish += ButtonPressFinish; buttonToReactTo.OnButtonUnpressFinish += ButtonUnpressFinish; }
void Start() { thisRenderer = GetComponent <SuperspectiveRenderer>(); solutionColor = thisRenderer.GetMainColor(); solutionEmissionColor = thisRenderer.GetColor("_EmissionColor"); }
protected override void Awake() { base.Awake(); dimensionObject = gameObject.FindDimensionObjectRecursively <DimensionObject>(); string shaderPath = "Shaders/Suberspective/SuberspectivePortal"; portalMaterial = new Material(Resources.Load <Shader>(shaderPath)); if (fallbackMaterial == null) { fallbackMaterial = Resources.Load <Material>("Materials/Invisible"); } if (renderers == null || renderers.Length == 0) { if (compositePortal) { renderers = GetComponentsInChildren <Renderer>() .Select(r => r.GetOrAddComponent <SuperspectiveRenderer>()).ToArray(); } else { renderers = new SuperspectiveRenderer[] { GetComponents <Renderer>().Select(r => r.GetOrAddComponent <SuperspectiveRenderer>()).FirstOrDefault() }; } } foreach (var r in renderers) { r.gameObject.layer = LayerMask.NameToLayer("Portal"); r.SetMaterial(pauseRenderingAndLogic ? fallbackMaterial : portalMaterial); } if (colliders == null || colliders.Length == 0) { if (compositePortal) { colliders = GetComponentsInChildren <Collider>(); } else { colliders = new Collider[] { GetComponent <Collider>() }; } } if (colliders.Length == 0) { Debug.LogError("No Colliders found in this object or its children", gameObject); enabled = false; return; } CreateCompositeTrigger(); InitializeCompositeTrigger(); foreach (var c in colliders) { if (c.gameObject != this.gameObject) { // PortalColliders handle non-player objects passing through portals c.gameObject.AddComponent <PortalCollider>().portal = this; if (c is BoxCollider boxCollider) { var size = boxCollider.size; size = new Vector3(size.x, size.y, portalThickness); boxCollider.size = size; } } } volumetricPortalPrefab = Resources.Load <GameObject>("Prefabs/VolumetricPortal"); volumetricPortals = colliders.Select(r => Instantiate(volumetricPortalPrefab, r.transform, false).GetOrAddComponent <SuperspectiveRenderer>()).ToArray(); for (int i = 0; i < volumetricPortals.Length; i++) { SuperspectiveRenderer vp = volumetricPortals[i]; Collider collider = colliders[i]; Vector3 vpScale = Vector3.one; if (collider is BoxCollider boxCollider) { vpScale = boxCollider.size / 10f; } else if (collider is MeshCollider meshCollider) { vpScale = meshCollider.bounds.size / 10f; } else { Debug.LogError("Collider type: " + collider.GetType().ToString() + " not handled."); } vpScale.z = 1f; vp.transform.localScale = vpScale; vp.enabled = false; } }
// Use this for initialization void Start() { thisRenderer = GetComponent <SuperspectiveRenderer>(); startEmissionColor = thisRenderer.GetColor(emissionColorName); }