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); }
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); } } }