// Use this for initialization void Start() { HandsManager player = GameObject.FindGameObjectWithTag("Player").GetComponent <HandsManager>(); oldLeftPos = player.leftHand.transform.position; oldRightPos = player.rightHand.transform.position; }
private IEnumerator Start() { while (!HandsManager.Instance || !HandsManager.Instance.IsInitialized()) { yield return(null); } _handManager = HandsManager.Instance; _handSkeleton = GetComponentInParent <OVRSkeleton>(); _hand = GetComponentInParent <OVRHand>(); if (!_handSkeleton || !_hand) { yield break; } switch (fingerToFollow) { case OVRPlugin.HandFinger.Thumb: _boneId = OVRSkeleton.BoneId.Hand_Thumb3; break; case OVRPlugin.HandFinger.Index: _boneId = OVRSkeleton.BoneId.Hand_Index3; break; case OVRPlugin.HandFinger.Middle: _boneId = OVRSkeleton.BoneId.Hand_Middle3; break; case OVRPlugin.HandFinger.Ring: _boneId = OVRSkeleton.BoneId.Hand_Ring3; break; case OVRPlugin.HandFinger.Pinky: _boneId = OVRSkeleton.BoneId.Hand_Pinky3; break; default: _boneId = OVRSkeleton.BoneId.Hand_Index3; break; } // var capsuleTriggers = new List<BoneCapsuleTriggerLogic>(); var boneCapsules = HandsManager.GetCapsulesPerBone(_handSkeleton, _boneId); // foreach (var capsule in boneCapsules) // { // var capsuleTrigger = capsule.CapsuleRigidbody.gameObject.AddComponent<BoneCapsuleTriggerLogic>(); // capsule.CapsuleCollider.isTrigger = true; // capsuleTriggers.Add(capsuleTrigger); // } if (boneCapsules.Count > 0) { _capsuleToTrack = boneCapsules[0]; } _isInitialized = true; }
private void Awake() { if (HandsManager.instance != null) { Destroy(gameObject); } instance = this; }
private void Awake() { if (_instance != null && _instance != this) { Destroy(this.gameObject); } else { _instance = this; } }
// Update is called once per frame void Update() { localTimer += Time.deltaTime; HandsManager player = GameObject.FindGameObjectWithTag("Player").GetComponent <HandsManager>(); Vector3 leftPos = Vector3.zero; Vector3 rightPos = Vector3.zero; if (player.leftHand.activeSelf) { leftPos = player.leftHand.transform.position; } if (player.rightHand.activeSelf) { rightPos = player.rightHand.transform.position; } if (player.leftHand.activeSelf && Vector3.Distance(transform.position, leftPos) < reactionDist) { Vector3 leftVel = (leftPos - oldLeftPos) / Time.deltaTime; //Debug.Log(leftVel); if (Vector3.Dot(leftVel, transform.forward) < 0 && !animPlaying) { StartCoroutine(PlayAnimation("leftDodge")); ResetTimer(); } } if (player.rightHand.activeSelf && Vector3.Distance(transform.position, rightPos) < reactionDist && !animPlaying) { Vector3 rightVel = (rightPos - oldRightPos) / Time.deltaTime; //Debug.Log(rightVel); if (Vector3.Dot(rightVel, transform.forward) < 0) { StartCoroutine(PlayAnimation("rightDodge")); ResetTimer(); } } Vector3 playerPos = Camera.main.transform.position - new Vector3(0, 0.2f, 0); if (Vector3.Distance(transform.position, playerPos) < reactionDist && localTimer > idleTime && randPunchCoroutine == null) { randPunchCoroutine = StartCoroutine(RandomPunch()); } oldLeftPos = leftPos; oldRightPos = rightPos; }
void FindReferences() { if (handsManager == null) { handsManager = GameObject.FindObjectOfType <HandsManager>(); } if (leftHandAnchor != null && rightHandAnchor != null && leftHand != null && rightHand != null) { return; } GameObject[] all = Resources.FindObjectsOfTypeAll <GameObject>(); foreach (GameObject o in all) { if (!o.scene.isLoaded) { continue; } if (o.name == "LeftHandAnchor") { leftHandAnchor = o.transform; } if (o.name == "RightHandAnchor") { rightHandAnchor = o.transform; } if (o.name == "OVRCustomHandPrefab_L") { originalLeftHand = o.transform; } if (o.name == "OVRCustomHandPrefab_R") { originalRightHand = o.transform; } if (o.name == "Left Hand Prefab") { leftHand = o; } if (o.name == "Right Hand Prefab") { rightHand = o; } } }
void LateUpdate() { timeSinceLastShot += Time.deltaTime; HandsManager handManager = HandsManager.Instance; if (handManager.NumberOfTrackedHands == 1) { if (currentHandID == null || !handManager.IsHandTracked(currentHandID.Value)) { currentHandID = handManager.GetBestHand(); } //Logger.Log("1 hand tracking", this); sphereRef.SetActive(true); sphereRef.transform.position = handManager.GetHandLocation(currentHandID.Value); if (GestureManager.Instance.TapEvent) { LaunchBall(sphereRef.transform.position); } } else if (handManager.NumberOfTrackedHands == 2) { //Logger.Log("2 hands tracking", this); if (toggle) { toggle = false; SpatialMappingManager.Instance.DrawVisualMeshes ^= SpatialMappingManager.Instance.DrawVisualMeshes; } } else { //Logger.Log("Not tracking", this); toggle = true; } if (timeSinceLastShot < .5f) { sphereRef.SetActive(false); } }
// Use this for initialization void Awake() { //get the gaze manager. GazeManager.Update(); //setup the voice manager. // VoiceManager.Init(); //setup the hands manager. HandsManager.Init(); //Setup spatial mapping. MappingManager.Init(this.gameObject); MappingManager.DrawMaterial = WireframeMaterial; MappingManager.MappingSize = SpatialMappingSize; MappingManager.MappingSpeed = SpatialMappingSpeed; MappingManager.LevelOfDetail = MappingLOD; MappingManager.Visualize = VisualizeMap; MappingManager.MappingEnabled = MappingEnabled; }
protected override void Start() { base.Start(); hand = GetComponent <HandsManager>(); }