Guest User

Untitled

a guest
Dec 1st, 2018
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. grindingDir = tempElement.ProgressionToWorldDirection(grindableProgression);
  2. targetPos = targetPos + (grindingDir * grindableSpeed * Time.fixedDeltaTime);
  3. targetPos = tempElement.GetNearestPointToElement(targetPos, grindableProgression, out tempElement);
  4.  
  5. if (tempElement != null) { targetRot = Quaternion.LookRotation(grindingDir, tempElement.GetElementUpAtPos(targetPos)); }
  6. else { targetRot = Quaternion.LookRotation(grindingDir, grindingWithTrick.GetElementUpAtPos(targetPos)); }
  7.  
  8. // We keep the grindtrick adjustments away from targetPos/Rot, so that our grind can continue smoothly along the element
  9. Vector3 adjustedPos = targetPos;
  10. Quaternion adjustedRot = targetRot;
  11.  
  12. Vector3 adjustedRelPos = grind.RelativePos;
  13. Quaternion adjustedRelRot = Quaternion.Euler(grind.RelativeRot);
  14.  
  15. // Grinds mirror front-to-back for Switch, and they ALSO mirror side-to-side based on which side of the rail we're on)
  16. if (skate.Movement.IsInSwitch)
  17. {
  18. adjustedRelPos.z = -adjustedRelPos.z;
  19. adjustedRelRot = Quaternion.Euler(0f, 180f, 0f) * Quaternion.Euler(-grind.RelativeRot.x, grind.RelativeRot.y, grind.RelativeRot.z);
  20. }
  21.  
  22. if (shouldMirrorHoriz)
  23. {
  24. adjustedRelPos.x = -adjustedRelPos.x;
  25. adjustedRelRot = Util.MathHelper.MirrorHeading(adjustedRelRot, Vector3.left);
  26. }
  27.  
  28. // Now apply the result
  29. adjustedPos += targetRot * adjustedRelPos;
  30. adjustedRot *= adjustedRelRot;
  31.  
  32. skate.RigidBody.transform.SetPositionAndRotation(adjustedPos, adjustedRot);
Advertisement
Add Comment
Please, Sign In to add comment