void Start() { if (magnififcationPrefab != null) { magnificationObj = (GameObject)Instantiate(magnififcationPrefab); magnificationObj.transform.parent = mainCamera.transform; magnificationObj.GetComponent <AdjustMagnificationLevel>().magnificationLevel = 5; magnificationObj.transform.localPosition = new Vector3(0, 0, 0.5f); magnificationObj.transform.localRotation = Quaternion.Euler(-90, 0, 0); magnificationObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); magnificationObj.layer = 31; magnificationObj.transform.GetChild(0).gameObject.layer = 31; Camera cam = magnificationObj.GetComponentInChildren <Camera>(); if (cam != null) { cam.cullingMask &= ~((1 << 31)); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; } magnificationObj.SetActive(false); } if (bifocalPrefab != null) { bifocalObj = Instantiate(bifocalPrefab); bifocalObj.GetComponent <AdjustBifocal>().magnificationLevel = 5; bifocalObj.transform.parent = mainCamera.transform; bifocalObj.transform.localPosition = new Vector3(0, -0.2f + bifocalShift, 0.5f); bifocalObj.transform.localRotation = Quaternion.Euler(-90, 0, 0); bifocalObj.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f); bifocalObj.layer = 31; bifocalObj.transform.GetChild(0).gameObject.layer = 31; Camera cam = bifocalObj.GetComponentInChildren <Camera>(); if (cam != null) { cam.cullingMask &= ~((1 << 31)); cam.transform.localRotation = Quaternion.Euler(90 - Mathf.Atan2(-0.2f + bifocalShift, 0.5f) * 180 / Mathf.PI, 0, 0); cam.transform.localPosition = new Vector3(0, 5, 2 - 10 * bifocalShift); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; } bifocalObj.SetActive(false); } if (remappingPrefab != null) { remappingObj = Instantiate(remappingPrefab); remappingObj.transform.parent = mainCamera.transform; remappingObj.transform.localScale = new Vector3(0.2f + SizeShift, 0.2f + SizeShift, 0.01f); remappingObj.transform.localPosition = new Vector3(XShift, YShift, 0.5f + ZShift); remappingObj.transform.localRotation = Quaternion.Euler(0, 180, 0); remappingObj.GetComponent <Renderer>().material.color = remappingEdgeColor; remappingObj.layer = 30; Camera cam = remappingObj.GetComponentInChildren <Camera>(); cam.cullingMask &= ~((1 << 31) | (1 << 30)); cam.transform.localPosition = new Vector3(XShift / 0.2f, -YShift / 0.2f, (0.5f + ZShift) / 0.01f); cam.clearFlags = mainCamera.clearFlags; cam.backgroundColor = mainCamera.backgroundColor; remappingObj.GetComponent <BoxCollider>().enabled = false; remappingObj.SetActive(false); } brightnessAdjustment = mainCamera.gameObject.AddComponent <BrightnessAdjustment>(); brightnessAdjustment.intensity = brightnessLevel; brightnessAdjustment.brightnessShader = Shader.Find("Custom/BrightnessShader"); brightnessAdjustment.enabled = false; contrastEnhance = mainCamera.gameObject.AddComponent <ContrastEnhance>(); contrastEnhance.contrastCompositeShader = Shader.Find("Hidden/ContrastComposite"); contrastEnhance.separableBlurShader = Shader.Find("Hidden/SeparableBlur"); contrastEnhance.threshold = 0; contrastEnhance.blurSpread = 1; contrastEnhance.intensity = contrastIntensity; contrastEnhance.enabled = false; edgeDetection = mainCamera.gameObject.AddComponent <EdgeDetection>(); edgeDetection.edgesOnly = 0; edgeDetection.edgesColor = edgeColor; edgeDetection.sampleDist = edgeThickness; edgeDetection.edgeDetectShader = Shader.Find("Hidden/EdgeDetect"); edgeDetection.enabled = false; augmentations = new GameObject("_augmentations"); textAugment = augmentations.AddComponent <TextAugmentationByShader>(); textAugment.addColliderToText = addTextCollider; textAugment.fontSizeIncrease = fontSizeIncrease; textAugment.bold = false; textAugment.isAugmented = false; textAugment.dynamicScanning = false; augmentations.AddComponent <WindowsVoice>(); if (leftHand != null) { leftVoice = leftHand.AddComponent <VoiceComponent>(); leftVoice.TextToSpeech = false; leftVoice.objectDescription = false; VoiceLaser leftLaser = leftHand.GetComponent <VoiceLaser>(); leftLaser.rotateAngle = laserRotation; leftLaser.shiftDistance = laserShift; leftDepth = leftHand.AddComponent <DepthLaser>(); leftDepth.isDepthMeasured = false; leftDepth.color = depthColor; leftDepth.rotateAngle = laserRotation; leftDepth.shiftDistance = laserShift; } if (rightHand != null) { rightVoice = rightHand.AddComponent <VoiceComponent>(); rightVoice.TextToSpeech = false; rightVoice.objectDescription = false; VoiceLaser rightLaser = rightHand.GetComponent <VoiceLaser>(); rightLaser.rotateAngle = laserRotation; rightLaser.shiftDistance = laserShift; rightDepth = rightHand.AddComponent <DepthLaser>(); rightDepth.isDepthMeasured = false; rightDepth.color = depthColor; rightDepth.rotateAngle = laserRotation; rightDepth.shiftDistance = laserShift; } highlightSalience = augmentations.AddComponent <HighlightSalience>(); highlightSalience.highlight = false; highlightSalience.highlightColor = highlightColor; highlightSalience.Guideline = false; highlightSalience.guidelineColor = guidelineColor; highlightSalience.forwardFactor = forwardFactor; highlightSalience.radius = radius; highlightSalience.dynamicScanning = salientObjDynamicScanning; recolorManagement = augmentations.AddComponent <RecolorManagement>(); recolorManagement.enableRecoloring = false; recolorManagement.threshould = distanceThreshold; recolorManagement.dynamicScanning = objectDynamicScanning; }