/// <summary> /// For dropping a Placeable into a pot /// </summary> /// <param name="Graspable"></param> /// <param name="destination"></param> /// <param name="time"></param> public static void MoveToPositionAndHide(Graspable Graspable, Vector3 destination, float time) { Graspable.Dormant = true; // Don't allow hits Graspable.EnableRb(false); LeanTween.sequence().append(() => { LeanTween.move(Graspable.gameObject, destination, time); }).append(time).append(() => { Graspable.EnableRb(true); Graspable.Show(false); Graspable.Dormant = true; // Don't need dormant flag if disabled }); }
/// <summary> /// Same as move and hide but with path /// </summary> /// <param name="Graspable"></param> /// <param name="path"></param> /// <param name="time"></param> public static void MoveToPositionAlongPathThenHide(Graspable Graspable, Vector3[] path, float time = 1.5f, bool orientToPath = true) { Graspable.Dormant = true; // Don't allow hits Graspable.EnableRb(false); LeanTween.moveSpline(Graspable.gameObject, path, time) .setEase(LeanTweenType.easeOutQuad) .setOrientToPath(orientToPath) .setOnComplete(() => { Graspable.EnableRb(true); Graspable.Show(false); }); }
/// <summary> /// For dropping a Placeable into a pot /// </summary> /// <param name="Graspable"></param> /// <param name="destination"></param> /// <param name="time"></param> public static void MoveToPositionThenHideAtPosition(Graspable Graspable, Vector3 destination, Vector3 hidePosition, float time) { Graspable.Dormant = true; // Don't allow hits Graspable.EnableRb(false); LeanTween.sequence().append(() => { LeanTween.move(Graspable.gameObject, destination, time); }).append(time).append(() => { Graspable.EnableRb(true); Graspable.Show(false); Graspable.transform.position = hidePosition; }); }
/// <summary> /// Useful for returning a dropped object to /// its original position and orientation /// </summary> /// <param name="Graspable"></param> /// <param name="destination"></param> /// <param name="rotation"></param> /// <param name="time"></param> public static void MoveToPosition(Graspable Graspable, Vector3 destination, Quaternion rotation, float time) { Graspable.Dormant = true; // Don't allow hits Graspable.EnableRb(false); LeanTween.sequence().append(() => { LeanTween.move(Graspable.gameObject, destination, time); }).append(() => { Graspable.gameObject.transform.rotation = rotation; Graspable.EnableRb(true); Graspable.Dormant = false; }); }
public static void RotateTo(Graspable Graspable, Vector3 eulerAngles, float time = 1.5f) { Graspable.Dormant = true; // Don't allow hits Graspable.EnableRb(false); LeanTween.rotate(Graspable.gameObject, eulerAngles, time) .setEase(LeanTweenType.easeOutQuad); }