void Update() { // update hiding status ovrController.GetCameraOrientation(ref orientation); ovrController.GetCameraPosition(ref position); //isHiding = Quaternion.LookRotation(orientation) + Quaternion.LookRotation(dirHide.normalized); //isHiding = ((orientation + dirHide.normalized)/2).; isHiding = Quaternion.Angle(orientation, dirHide) < angleDifference; if (isHiding && !hasHiddenBefore) { hasHiddenBefore = true; } coatRight.localPosition = (isHiding)?Vector3.MoveTowards(coatRight.localPosition, Vector3.Lerp(Vector3.zero, cRight, angleDifferencePercentage), hideSpeed) :cRight; coatLeft.localPosition = -coatRight.localPosition; // move coat parts accordingl if (isHiding && !calledHiding) { if (Closet.GetInstance().onPlayerHidden != null) { Closet.GetInstance().onPlayerHidden(); } audio.clip = coatClip; audio.loop = false; audio.Play(); calledHiding = true; } else if (!isHiding && calledHiding) { if (Closet.GetInstance().onPlayerUnhidden != null) { Closet.GetInstance().onPlayerUnhidden(); } audio.clip = coatClip; audio.loop = false; audio.Play(); calledHiding = false; } }