// Update is called once per frame void Update() { if (DetectionController.GetInstance().IsHandDetected(hand)) { handController = DetectionController.GetInstance().GetHand(hand); //Si le doigt du raycast est le seul d'ouvert et le Palm UI n'est pas affiché if (handController.IsIndexOpened()) //&& !PalmUIController.GetInstance().IsPalmUIOpen() { //La position du bout du foigt et la direction auquelle il pointe fingerController = handController.GetFinger(finger); light.transform.position = fingerController.GetFingertipPosition(); light.transform.rotation = Quaternion.LookRotation(fingerController.GetFingerDirection()); } } }
/***************************************************** * INITIATE RAYCAST * * INFO: Demarre le raycast effectué à partir du bout * d'un doigt pour une main quelconque. * * Initialise le laser et la sélection d'objet * par raycast et Gun gesture. * * Fonction appelé en boucle par le DetectionController. * *****************************************************/ public void InitiateRaycast() { //Si la main du raycast est détecté if (DetectionController.GetInstance().IsHandDetected(raycastHand)) { handController = DetectionController.GetInstance().GetHand(raycastHand); //Si le doigt du raycast est le seul d'ouvert et le Palm UI n'est pas affiché if (handController.IsIndexOpened() && !PalmUIController.GetInstance().IsPalmUIOpen()) { //Les controleurs de la main et doigt fingerController = handController.GetFinger(raycastFinger); Ray ray = fingerController.GetFingerRay(); //Trace la ligne rouge dans le sens que pointe le doigt de la main 3D Debug.DrawRay( fingerController.GetFingertipPosition(), ray.direction, raycastColor, Time.deltaTime, true); //Active le point de lumiere (point raycast) lightDot.SetActive(activateLightDot); //Permet la selection d'objets 3D avec le raycast SelectObjectWithRaycast(ray); } // Si le raycast est désactivé, on reset une fois le highlight des objets else { CheckResetHighlight(); } } // Si la main du raycast n'est plus détecté, on reset une fois le highlight des objets else { CheckResetHighlight(); } }