public override bool OnGizmoCanBeginDrag(int handleId) { if (BoxUsage == Usage.ObjectScale && _targetHierarchy != null) { IRTTransformGizmoListener transformGizmoListener = _targetHierarchy.GetComponent <IRTTransformGizmoListener>(); if (transformGizmoListener != null) { return(transformGizmoListener.OnCanBeTransformed(Gizmo)); } } return(true); }
private List <GameObject> GetTransformableParentObjects() { List <GameObject> targetParents = GameObjectEx.FilterParentsOnly(_targetObjects); List <GameObject> transformableParents = new List <GameObject>(); foreach (var parent in targetParents) { IRTTransformGizmoListener transformGizmoListener = parent.GetComponent <IRTTransformGizmoListener>(); if (transformGizmoListener != null && !transformGizmoListener.OnCanBeTransformed(Gizmo)) { continue; } if (Settings.IsLayerTransformable(parent.layer) && Settings.IsObjectTransformable(parent)) { transformableParents.Add(parent); } } return(transformableParents); }