public void transformFrame(Frame source, Frame dest) { LeapTransform leapTransform; _temporalWarping = null; ////////////////////////////////////////////// // 细细研究这个问题 弄清楚是为什么 ///////////////////////////////////////////// if (_temporalWarping != null) { Vector3 warpedPosition; Quaternion warpedRotation; _temporalWarping.TryGetWarpedTransform(LeapVRTemporalWarping.WarpedAnchor.CENTER, out warpedPosition, out warpedRotation, source.Timestamp); warpedRotation = warpedRotation * transform.localRotation; leapTransform = new LeapTransform(warpedPosition.ToVector(), warpedRotation.ToLeapQuaternion(), transform.lossyScale.ToVector() * 1e-3f); leapTransform.MirrorZ(); } else { leapTransform = transform.GetLeapMatrix(); } dest.CopyFrom(source).Transform(leapTransform); }
protected virtual void Reset() { if (checkShouldEnableHeadMounted()) { _isHeadMounted = true; } _temporalWarping = GetComponentInParent <LeapVRTemporalWarping>(); _frameOptimization = FrameOptimizationMode.None; _updateHandInPrecull = false; }