Skip to content

Commit

Permalink
Maths
Browse files Browse the repository at this point in the history
  • Loading branch information
Guillemsc committed Mar 30, 2022
1 parent 71a2e36 commit 7fa0604
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 20 deletions.
13 changes: 0 additions & 13 deletions Runtime/Navigation/InputSystemUIInputModuleNavigationExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,6 @@ private void LateUpdate()
TrySelectDesignated();
}

private void OnApplicationFocus(bool focus)
{
if(!focus)
{
return;
}

if(!IsUsingSelectables)
{
return;
}
}

public void SetFallbackSelectable(Selectable fallbackSelectable)
{
if (fallbackSelectable == null)
Expand Down
20 changes: 13 additions & 7 deletions Runtime/ScrollView/ScrollWithSelection.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using Juce.Input.Navigation;
using System;
using UnityEngine;
using UnityEngine.EventSystems;

Expand Down Expand Up @@ -51,22 +52,27 @@ private void TryScroll(RectTransform scrollRect, RectTransform content)
float scrollViewMinY = content.anchoredPosition.y;
float scrollViewMaxY = content.anchoredPosition.y + scrollRect.rect.height;

float selectedPositionY = Mathf.Abs(selectedRectTransform.anchoredPosition.y) + (selectedRectTransform.rect.height / 2);
float selectedPositionMinY = Mathf.Abs(selectedRectTransform.anchoredPosition.y) - (selectedRectTransform.rect.height / 2);
float selectedPositionMaxY = Mathf.Abs(selectedRectTransform.anchoredPosition.y) + (selectedRectTransform.rect.height / 2);

// If selection below scroll view
if (selectedPositionY > scrollViewMaxY)
if (selectedPositionMaxY > scrollViewMaxY)
{
float newY = selectedPositionY - scrollRect.rect.height;
content.anchoredPosition = new Vector2(content.anchoredPosition.x, newY + verticalSpacing);
float newY = selectedPositionMaxY - scrollRect.rect.height;
float newYWithVerticalSpacing = newY + verticalSpacing;

content.anchoredPosition = new Vector2(content.anchoredPosition.x, newYWithVerticalSpacing);

return;
}

// If selection above scroll view
if (Mathf.Abs(selectedRectTransform.anchoredPosition.y) < scrollViewMinY)
if (selectedPositionMinY < scrollViewMinY)
{
float newY = Mathf.Abs(selectedRectTransform.anchoredPosition.y) - (selectedRectTransform.rect.height / 2);
content.anchoredPosition = new Vector2(content.anchoredPosition.x, newY - verticalSpacing);
float newYWithVerticalSpacing = selectedPositionMinY - verticalSpacing;
newYWithVerticalSpacing = Math.Max(0, newYWithVerticalSpacing);

content.anchoredPosition = new Vector2(content.anchoredPosition.x, newYWithVerticalSpacing);

return;
}
Expand Down

0 comments on commit 7fa0604

Please sign in to comment.