您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    实现手指向左滑动倒序播放图片序列
    时间:2015-05-05 08:57 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    不多说,直接贴出代码:


    public enum Dir : int
    {
        Left = 0,
        Stop,
        Right
    }
    // C#脚本名为Test.cs
    
    public class Web : MonoBehaviour
    {
    
        public GameObject _plane;// 挂一个用来显示图片的plane对象
        public float duration = 0.5f; // 每0.5秒换一张图片
    
        public Texture2D[] _texAll;  // 挂30张图片
    
        Dir _touchDir;       // 当前的手势
    
        float curTime = 0;
    
        int _index = 0;
    
        void Update()
        {
            // 当运行平台为IOS或Android时
    
            if (Application.platform == RuntimePlatform.IPhonePlayer || Application.platform == RuntimePlatform.Android)
            {
                // 当输入的触点数量大于0,且手指移动时
    
                if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
                {
                    if (Input.GetTouch(0).deltaPosition.x < 0 - Mathf.Epsilon)
                        _touchDir = Dir.Left;
                    else
                        _touchDir = Dir.Right;
                }
                // 当输入的触点数量大于0,且手指不动时
    
                if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Stationary)
                {
                    _touchDir = Dir.Stop;
                }
            }
    
            // 根据手势顺序或逆序换图
    
            if (_touchDir != Dir.Stop)
            {
                if (_touchDir == Dir.Left)
                {
                    curTime += Time.deltaTime;
                    if (curTime > duration)
                    {
                        curTime = 0;
                        _index = _index == 0 ? _texAll.Length - 1 : _index;
                        _plane.renderer.material.mainTexture = _texAll[_index--];
                    }
                }
                else
                {
                    curTime += Time.deltaTime;
                    if (curTime > duration)
                    {
                        curTime = 0;
                        _index = _index == _texAll.Length - 1 ? 0 : _index;
                        _plane.renderer.material.mainTexture = _texAll[_index++];
                    }
                }
            }
        }
    }


    直接复制代码,进行测试吧。。。



    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家