一个圆环上有好多控件,实现左右滑动以及近大远小的效果

来源:互联网 发布:淘宝怎么更改收货地址 编辑:程序博客网 时间:2024/04/27 23:50

一个圆环上有好多个可点击控件-按钮,如何实现左右滑动以及近大远小的效果

效果如下图:


using UnityEngine;using System.Collections;public class zhuandong : MonoBehaviour {    public GameObject circle;//以下几个按钮都放在圆环上public GameObject imagebtn;public GameObject wordbtn;public GameObject videobtn;public GameObject pptbtn;public GameObject excelbtn;public GameObject pdfbtn;    private Vector2 first = Vector2.zero;//鼠标按下的位置    private Vector2 second = Vector2.zero;//鼠标拖动的位置       public GameObject[] skillArray = new GameObject[6];//获取6个子控件    void Update()    {        foreach (GameObject i in skillArray)//近大远小,根据这6个按钮所在位置的y轴进行缩放
        {            //最上边空间缩小一倍            if (i.transform.position.y > 0.24)            {                i.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f);            }            if (i.transform.position.y <= 0.24 && i.transform.position.y > 0)            {                i.transform.localScale = new Vector3(0.8f, 0.8f, 0.8f);            }            if (i.transform.position.y >= -0.24 && i.transform.position.y <= 0)            {                i.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);            }            if (i.transform.position.y < -0.24 )            {                i.transform.localScale = new Vector3(1.2f, 1.2f, 1.2f);            }           // print("y:"+i.transform.position.y);        }    }    void OnGUI()    {        if (Event.current.type == EventType.MouseDown)//鼠标按下事件        {            first = Event.current.mousePosition;        }        if (Event.current.type == EventType.MouseDrag)//鼠标拖动事件        {            second = Event.current.mousePosition;            if (second.x < first.x)            {                print("left");circle.transform.Rotate(Vector3.forward * Time.deltaTime * -150);imagebtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);wordbtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);videobtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);pptbtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);excelbtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);pdfbtn.transform.Rotate(Vector3.forward * Time.deltaTime * 150);            }            if (second.x > first.x)            {                print("right");                circle.transform.Rotate(Vector3.forward * Time.deltaTime * 150);imagebtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);wordbtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);videobtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);pptbtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);excelbtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);pdfbtn.transform.Rotate(Vector3.forward * Time.deltaTime * -150);            }        }    }}


0 0
原创粉丝点击