You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.5 KiB
C#
58 lines
1.5 KiB
C#
using UnityEngine;
|
|
using FairyGUI;
|
|
|
|
public class CurveMain : MonoBehaviour
|
|
{
|
|
GComponent _mainView;
|
|
GList _list;
|
|
|
|
void Start()
|
|
{
|
|
Application.targetFrameRate = 60;
|
|
Stage.inst.onKeyDown.Add(OnKeyDown);
|
|
|
|
_mainView = this.GetComponent<UIPainter>().ui;
|
|
|
|
_list = _mainView.GetChild("list").asList;
|
|
_list.SetVirtualAndLoop();
|
|
_list.itemRenderer = RenderListItem;
|
|
_list.numItems = 5;
|
|
_list.scrollPane.onScroll.Add(DoSpecialEffect);
|
|
|
|
DoSpecialEffect();
|
|
}
|
|
|
|
void DoSpecialEffect()
|
|
{
|
|
//change the scale according to the distance to middle
|
|
float midX = _list.scrollPane.posX + _list.viewWidth / 2;
|
|
int cnt = _list.numChildren;
|
|
for (int i = 0; i < cnt; i++)
|
|
{
|
|
GObject obj = _list.GetChildAt(i);
|
|
float dist = Mathf.Abs(midX - obj.x - obj.width / 2);
|
|
if (dist > obj.width) //no intersection
|
|
obj.SetScale(1, 1);
|
|
else
|
|
{
|
|
float ss = 1 + (1 - dist / obj.width) * 0.24f;
|
|
obj.SetScale(ss, ss);
|
|
}
|
|
}
|
|
}
|
|
|
|
void RenderListItem(int index, GObject obj)
|
|
{
|
|
GButton item = (GButton)obj;
|
|
item.SetPivot(0.5f, 0.5f);
|
|
item.icon = UIPackage.GetItemURL("Curve", "n" + (index + 1));
|
|
}
|
|
|
|
void OnKeyDown(EventContext context)
|
|
{
|
|
if (context.inputEvent.keyCode == KeyCode.Escape)
|
|
{
|
|
Application.Quit();
|
|
}
|
|
}
|
|
} |