46 lines
1.6 KiB
C#
46 lines
1.6 KiB
C#
|
#if UNITY_EDITOR
|
|||
|
using UnityEngine;
|
|||
|
using UnityEngine.UIElements;
|
|||
|
|
|||
|
namespace GSpawn
|
|||
|
{
|
|||
|
public class GridViewState : ScriptableObject
|
|||
|
{
|
|||
|
[SerializeField]
|
|||
|
public PluginGuidHashSet selectedItems = new PluginGuidHashSet();
|
|||
|
[SerializeField]
|
|||
|
public PluginGuid selectRangeBeginId;
|
|||
|
[SerializeField]
|
|||
|
public PluginGuid selectRangeEndId;
|
|||
|
[SerializeField]
|
|||
|
public bool hasSelectRange;
|
|||
|
[SerializeField]
|
|||
|
public Vector2 scrollOffset;
|
|||
|
[SerializeField]
|
|||
|
public float vertScrollHighValue;
|
|||
|
[SerializeField]
|
|||
|
public float vertScrollLowValue;
|
|||
|
|
|||
|
public void storeScrollData(ScrollView scrollView)
|
|||
|
{
|
|||
|
scrollOffset = scrollView.scrollOffset;
|
|||
|
vertScrollHighValue = scrollView.verticalScroller.highValue;
|
|||
|
vertScrollLowValue = scrollView.verticalScroller.lowValue;
|
|||
|
}
|
|||
|
|
|||
|
public void applyScrollState(ScrollView scrollView)
|
|||
|
{
|
|||
|
// Save this here before changing high and low values. Changing
|
|||
|
// those values will call the value changed handler and that
|
|||
|
// will in turn call storeScrollData.
|
|||
|
Vector2 scrOffset = scrollOffset;
|
|||
|
scrollView.verticalScroller.lowValue = vertScrollLowValue;
|
|||
|
scrollView.verticalScroller.highValue = vertScrollHighValue;
|
|||
|
scrollView.scrollOffset = scrOffset;
|
|||
|
|
|||
|
// Restore ...
|
|||
|
scrollOffset = scrOffset;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endif
|