首先说一下效果,滑动圆盘,最上面得按钮会移出屏幕,从最下面出现。
想法:1 在圆盘的中间偏左有一个标志图片,滑动圆盘,当最上面的按钮的X值小于标志图片的X值时,将按钮加入到一个List列表中,并将按钮设置为false,布尔设置为false
2 当圆盘的X值大于标志图片的x值,将列表中的按钮赋值给圆盘,设置为True;首先在UI上创建一个圆盘,放在Canvas右侧,每个子物体一次旋转30°。

面板上格式


然后在圆盘中心偏左一点放置一个空物体作为标志(下文会提到),

UI上操作完成,下面是代码部分
在Canavs上挂载一下脚本
public class Tou_Click : MonoBehaviour {
public GameObject Pos;
private float speed;
public List<GameObject> list_unuse;
// Use this for initialization
void Start () {
speed = 60f;
}
// Update is called once per frame
void Update () {
Touch_Click();
}
public void Touch_Click()
{
if (Input.GetMouseButton(0)) //用于PC端
{
Pos.GetComponent<RectTransform>().eulerAngles -= Pos.transform.forward * speed * Time.deltaTime * Input.GetAxis("Mouse Y");
}
if (Input.touchCount>0) //用于手机端
{
Touch touch = Input.GetTouch(0);
if (touch.phase==TouchPhase.Began)
{
}
if (touch.phase==TouchPhase.Moved)
{
Pos.GetComponent<RectTransform>().eulerAngles -= Pos.transform.forward * speed * Time.deltaTime*touch.deltaPosition.y;
}
if (touch.phase==TouchPhase.Ended)
{
}
}
}
}
然后在圆盘每个子物体上都挂一个下一个脚本
public class Pos_r : MonoBehaviour {
public GameObject button;
public bool isHave;
private GameObject flag;
private Tou_Click tou_Click;
// Use this for initialization
void Start () {
flag = GameObject.Find("Flag");
tou_Click = GameObject.Find("Canvas_Menu").GetComponent<Tou_Click>();
}
// Update is called once per frame
void Update () {
HoldButton();
RemovrButton();
SetButton();
}
public void HoldButton()
{
if (isHave==true)
{
button.transform.position = transform.position;
}
}
public void RemovrButton()
{
if (isHave==true && transform.position. x>flag.transform.position.x)
{
tou_Click.list_unuse.Add(button);
button.SetActive(false);
button = null;
isHave = false;
Debug.Log("移除");
}
}
public void SetButton()
{
if (isHave==false && transform.position.x<flag.transform.position.x)
{
button = tou_Click.list_unuse[0];
button.SetActive(true);
isHave = true;
tou_Click.list_unuse.RemoveAt(0);
Debug.Log("添加");
}
}
}
说明一下在挂有button按钮的圆盘子物体上 isHave 设置为 True,button设置为当前圆盘子物体上的Button。
简单的滑动圆盘就做好的了,至于后面的按钮设置和操作,根据各自得项目需求来定