public void Init(GameObject boxPrefab, Color boxColor) { BoxInfoForSlider.size = 1f; for (int i = 0; i < BoxInfoForSlider.count; i++) { var cube = Instantiate(boxPrefab); cube.transform.SetParent(this.transform); cube.transform.localPosition = new Vector3(0f, BoxInfoForSlider.size * i - BoxInfoForSlider.size * (BoxInfoForSlider.count - 1) / 2); _boxes.Add(cube); } float margin = 1.2f; _sliderCollider = gameObject.AddComponent <BoxCollider>(); _sliderCollider.size = new Vector3(BoxInfoForSlider.size * margin, BoxInfoForSlider.TotalSize(), BoxInfoForSlider.size * margin); var ev = gameObject.AddComponent <EventTrigger>(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerDown; entry.callback.AddListener((eventData) => { MoveBox((PointerEventData)eventData); }); ev.triggers.Add(entry); foreach (var box in _boxes) { var boxCore = box.transform.GetChild(0).GetChild(0); boxCore.GetComponent <Renderer>().material.color = boxColor; } RenewBoxSlider(BoxInfoForSlider.HalfCount()); }
public IntSliderEventArgs(int _index, SliderType _type) : base() { index = _index - BoxInfoForSlider.HalfCount(); type = _type; }
private int CalcBoxIndex(float y) { return((int)((y + BoxInfoForSlider.TotalSize() / 2) / BoxInfoForSlider.size)); }