Beispiel #1
0
        private void AddHandGrabPoint(HandGrabPoint copy = null, float?scale = null)
        {
            HandGrabPoint point = _interactable.CreatePoint();

            if (copy != null)
            {
                HandGrabPointEditor.CloneHandGrabPoint(copy, point);
                if (scale.HasValue)
                {
                    HandGrabPointData scaledData = point.SaveData();
                    scaledData.scale = scale.Value;
                    point.LoadData(scaledData, copy.RelativeTo);
                }
            }
            _interactable.GrabPoints.Add(point);
        }
Beispiel #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);
                }
            }
        }