public override void OnDrawRuntimeGizmos(RuntimeGizmoDrawer drawer) { if (Application.isPlaying) { base.OnDrawRuntimeGizmos(drawer); } else { var provider = leapProvider; if (provider == null) { provider = Hands.Provider; } if (_testHand == null && provider != null) { _testHand = TestHandFactory.MakeTestHand(0, 0, this.isLeft) .TransformedCopy(UnityMatrixExtension.GetLeapMatrix(provider.transform)); } // Hover Point _unwarpedHandData = _testHand; // hoverPoint is driven by this backing variable drawHoverPoint(drawer, hoverPoint); // Primary Hover Points for (int i = 0; i < NUM_FINGERS; i++) { if (enabledPrimaryHoverFingertips[i]) { drawPrimaryHoverPoint(drawer, _testHand.Fingers[i].TipPosition.ToVector3()); } } } }
void Update() { #if UNITY_EDITOR PrefabType prefabType = PrefabUtility.GetPrefabType(this.gameObject); if (prefabType == PrefabType.Prefab || prefabType == PrefabType.ModelPrefab) { return; } #endif bool requiresReinitialization = false; using (new ProfilerSample("Attachment Hands Update", this.gameObject)) { for (int i = 0; i < _attachmentHands.Length; i++) { var attachmentHand = attachmentHands[i]; if (attachmentHand == null) { requiresReinitialization = true; break; } var leapHand = handAccessors[i](); #if UNITY_EDITOR if (Hands.Provider != null) { if (leapHand == null && !Application.isPlaying) { leapHand = TestHandFactory.MakeTestHand(0, i, i == 0).TransformedCopy(UnityMatrixExtension.GetLeapMatrix(Hands.Provider.transform)); } } #endif using (new ProfilerSample(attachmentHand.gameObject.name + " Update Points")) { foreach (var point in attachmentHand.points) { point.SetTransformUsingHand(leapHand); } } } if (requiresReinitialization) { reinitialize(); } } }
void Update() { if (!EditorApplication.isPlaying) { //Debug.Log("IHandModel.Update()"); SetLeapHand(TestHandFactory.MakeTestHand(0, 0, Handedness == Chirality.Left).TransformedCopy(UnityMatrixExtension.GetLeapMatrix(transform))); UpdateHand(); } }