Example #1
0
        /// <summary>
        /// Creates a new HandGrabInteractable from the stored data.
        /// Mostly used to restore a HandGrabInteractable that was stored during Play-Mode.
        /// </summary>
        /// <param name="data">The data of the HandGrabInteractable.</param>
        /// <returns>The generated HandGrabInteractable.</returns>
        private HandGrabInteractable LoadHandGrabInteractable(HandGrabInteractableData data)
        {
            HandGrabInteractable interactable = HandGrabInteractable.Create(_recordable.transform);

            interactable.LoadData(data);
            return(interactable);
        }
Example #2
0
        private void DrawGenerationMenu()
        {
            if (GUILayout.Button("Create Mirrored HandGrabInteractable"))
            {
                HandGrabInteractable mirrorInteractable =
                    HandGrabInteractable.Create(_interactable.RelativeTo,
                                                $"{_interactable.gameObject.name}_mirror");

                HandGrabInteractableData data = _interactable.SaveData();
                data.points = null;
                mirrorInteractable.LoadData(data);

                foreach (HandGrabPoint point in _interactable.GrabPoints)
                {
                    HandGrabPoint mirrorPoint = mirrorInteractable.CreatePoint();
                    HandGrabPointEditor.MirrorHandGrabPoint(point, mirrorPoint);
                    mirrorPoint.transform.SetParent(mirrorInteractable.transform);
                    mirrorInteractable.GrabPoints.Add(mirrorPoint);
                }
            }
        }