private void DoOptionsGUI(UiPositionOptions option, string positionField, string targetField) { switch (option) { case UiPositionOptions.CurrentPosition: break; case UiPositionOptions.Position: EditField(positionField, "Position"); break; case UiPositionOptions.Offset: EditField(positionField, "Offset"); break; case UiPositionOptions.OffscreenTop: case UiPositionOptions.OffscreenBottom: case UiPositionOptions.OffscreenLeft: case UiPositionOptions.OffscreenRight: break; case UiPositionOptions.TargetGameObject: EditField(targetField, "GameObject"); EditField(positionField, "Offset"); break; default: throw new ArgumentOutOfRangeException("option", option, null); } }
public override void Reset() { base.Reset(); fromOption = UiPositionOptions.CurrentPosition; fromTarget = null; fromPosition = null; toOption = UiPositionOptions.Position; toTarget = null; toPosition = null; }
public static Vector3 GetUiTargetPosition(UiPositionOptions option, RectTransform owner, Transform target, Vector3 position) { if (owner == null) { return(Vector3.zero); } switch (option) { case UiPositionOptions.CurrentPosition: return(owner.anchoredPosition3D); case UiPositionOptions.Position: return(position); case UiPositionOptions.Offset: return(owner.anchoredPosition3D + position); case UiPositionOptions.OffscreenTop: var offscreen = owner.anchoredPosition3D; var rect = GetWorldRect(owner); offscreen.y += Screen.height - rect.yMin; return(offscreen); case UiPositionOptions.OffscreenBottom: offscreen = owner.anchoredPosition3D; rect = GetWorldRect(owner); offscreen.y -= rect.yMax; return(offscreen); case UiPositionOptions.OffscreenLeft: offscreen = owner.anchoredPosition3D; rect = GetWorldRect(owner); offscreen.x -= rect.xMax; return(offscreen); case UiPositionOptions.OffscreenRight: offscreen = owner.anchoredPosition3D; rect = GetWorldRect(owner); offscreen.x += Screen.width - rect.xMin; return(offscreen); case UiPositionOptions.TargetGameObject: if (target == null) { return(owner.anchoredPosition3D); } if (position != Vector3.zero) { return(target.TransformPoint(position)); } return(target.position); default: throw new ArgumentOutOfRangeException("option", option, null); } }