一个圆环上有好多控件,实现左右滑动以及近大远小的效果
2016-09-12 10:24
603 查看
一个圆环上有好多个可点击控件-按钮,如何实现左右滑动以及近大远小的效果
效果如下图:
效果如下图:
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); } } } }
相关文章推荐
- Android左右滑动控件实现开关的切换效果
- css 实现 section(块) 的左右滑动,以及块内文字居中的效果
- Multiple-View ViewPager-如何实现Viewpager控件的一个页面展示多个page以及回弹效果
- Android 利用ViewPager实现底部圆点导航左右滑动效果以及Fragment页面切换
- Android-使用ViewGroup实现左右滑动切换界面以及界面裂开的效果
- android-使用ViewGroup实现左右滑动切换界面以及界面裂开的效果
- Android实现左右滑动指引效果
- 在mobile5.0上实现滑动效果控件
- Html精确定位,ScrollHeight等介绍,以及一个例子实现在某个控件处打开一个DIV
- Android实现渐显按钮的左右滑动效果
- Android实现左右滑动效果(转)
- [Android实例] Android 实现导航菜单左右滑动效果
- Android实现导航菜单左右滑动效果
- Android实现导航菜单左右滑动效果
- 实现导航栏的左右滑动效果
- android-使用ViewGroup实现左右滑动切换界面的效果
- Android 左右滑动切换页面或Activity的效果实现
- 一个可以实现 左右联动JTable 的完全Dialog 实现类似 Excel的冻结第一列 效果
- Android中使用Animation实现控件的动画效果以及Interpolator和AnimationListener的使用
- Android左右滑动实现Activity切换类UC+QQ+天天动听音乐播放效果