-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathTraderScrollingScript.cs
More file actions
62 lines (50 loc) · 2.25 KB
/
Copy pathTraderScrollingScript.cs
File metadata and controls
62 lines (50 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using Comfort.Common;
using EFT.UI;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
namespace TraderScrolling
{
public class TraderScrollingScript : MonoBehaviour
{
private static ScrollRect _referenceScrollRect;
private void Awake()
{
var traderCards = GameObject.Find("TraderCards");
var countCards = traderCards.transform.childCount;
if (countCards <= 9)
{
// If you have default amount of traders or less dont do anything.
return;
}
var menuUI = Singleton<MenuUI>.Instance.gameObject;
var list = menuUI.GetComponentsInChildren<RectTransform>(true).ToList();
var container = list.FirstOrDefault(x => x.name == "Container");
var scrollrect = traderCards.AddComponent<ScrollRect>();
var traderCardsRect = traderCards.GetComponent<RectTransform>();
var containerRect = container.GetComponent<RectTransform>();
var count = countCards - 9;
// THIS IS DEFAULT
traderCardsRect.anchorMin = new Vector2(0.595f, 1f);
// extra traders
var newAnchorMin = 0.595f + (-0.065f * count);
traderCardsRect.anchorMin = new Vector2((newAnchorMin), 1f);
traderCardsRect.anchorMax = new Vector2(1f, 1f);
containerRect.anchorMax = new Vector2(1f, 1f);
containerRect.anchorMin = new Vector2(0.01f, 0f);
scrollrect.content = traderCardsRect;
scrollrect.vertical = false;
scrollrect.movementType = ScrollRect.MovementType.Elastic;
scrollrect.viewport = containerRect;
scrollrect.scrollSensitivity = TraderScrolling.ScrollWheelSpeed.Value;
_referenceScrollRect = scrollrect;
TraderScrolling.ScrollWheelSpeed.SettingChanged += (a, b) => AdjustScrollSpeed();
}
private static void AdjustScrollSpeed()
{
if (_referenceScrollRect == null)
return;
_referenceScrollRect.scrollSensitivity = TraderScrolling.ScrollWheelSpeed.Value;
}
}
}