public void Click(ControllerInformation controller) { Ray ray = new Ray(controller.trackedObj.transform.position, controller.trackedObj.transform.forward); Debug.DrawRay(transform.position, transform.forward * 100f); RaycastHit[] hits = Physics.RaycastAll(ray, 100f, layer); if (hits.Length > 0) { foreach (var hit in hits) { UITracked tracker = hit.collider.GetComponent <UITracked>(); if (tracker != null) { VRTopic topic = tracker.trackedUIObject.GetComponent <VRTopic>(); TutorialScreen screen = topic.GetComponentInParent <TutorialScreen>(); if (tracker.transform.position.y > screen.getLowerBorder().position.y - toleranceForOutsideRecognition && tracker.transform.position.y < screen.getUpperBorder().position.y + toleranceForOutsideRecognition) { screen.selectedTopic = topic; } break; } } } }
// Use this for initialization void Start() { InteractWithHelpScreen.interactingHelpScreen = this; //instantiate topics allVRTopics = new List <VRTopic>(); foreach (var item in allTopics) { GameObject topic = Instantiate(TopicPrefab, contentHolder); VRTopic thisTopic = topic.GetComponent <VRTopic>(); thisTopic.info = item; GameObject uiTracked = Instantiate(UiTrackedPrefab, transform); uiTracked.GetComponent <UITracked>().trackedUIObject = topic.GetComponent <RectTransform>(); allVRTopics.Add(thisTopic); } selectedTopic = allVRTopics[0]; //stuff player = GameObject.FindObjectOfType <SteamVR_Camera>(); smallSize = transform.localScale.x; //if no space -> despawn for (int i = 0; i < transform.childCount; i++) { VRSensor sensor = transform.GetChild(i).GetComponent <VRSensor>(); if (sensor != null) { sensor.collisionEnter += NotEnoughSpace; } } //start grow StartCoroutine(GrowScreen()); }