zoukankan      html  css  js  c++  java
  • Unity3D制作触屏手机滑动动效果

    想要苹果或安卓那种手指滑动屏幕的效果。

    这里是原文,使用的是scrollview来演示。

    http://www.mindthecube.com/blog/2010/09/adding-iphone-touches-to-unitygui-scrollview

    它是iphone的开发,我发一下android上的,选择里边的item还没添加进来。

    using UnityEngine;
    using System.Collections;

    public class TestUI : MonoBehaviour {

    public Vector2 scrollPosition = Vector2.zero;
    public float scrollVelocity = 0f;
    public float timeTouchPhaseEnded = 0f;
    public float inertiaDuration = 0.5f;

    public Vector2 lastDeltaPos;

    // Use this for initialization
    void Start () {

    }

    void OnGUI()
    {
    scrollPosition = GUI.BeginScrollView(new Rect(100, 40, 600, 400), scrollPosition, new Rect(0, 0, 500, 1600), false, true);


    for (int i = 0; i < 32; i++)
    {
    GUI.Button(new Rect(0, i*50, 400, 50), "Button"+i);
    }
    GUI.EndScrollView();
    }

    // Update is called once per frame
    void Update ()
    {
    if (Input.touchCount > 0)
    {
    if (Input.GetTouch(0).phase == TouchPhase.Moved)
    {
    scrollPosition.y += Input.GetTouch(0).deltaPosition.y;
    lastDeltaPos = Input.GetTouch(0).deltaPosition;
    }
    else if (Input.GetTouch(0).phase == TouchPhase.Ended)
    {
    print ("End:"+lastDeltaPos.y+"|"+Input.GetTouch(0).deltaTime);
    if (Mathf.Abs(lastDeltaPos.y)> 20.0f)
    {
    scrollVelocity = (int)(lastDeltaPos.y * 0.5/ Input.GetTouch(0).deltaTime);
    print(scrollVelocity);
    }
    timeTouchPhaseEnded = Time.time;
    }
    }
    else
    {
    if (scrollVelocity != 0.0f)
    {
    // slow down
    float t = (Time.time - timeTouchPhaseEnded)/inertiaDuration;
    float frameVelocity = Mathf.Lerp(scrollVelocity, 0, t);
    scrollPosition.y += frameVelocity * Time.deltaTime;

    if (t >= inertiaDuration)
    scrollVelocity = 0;
    }
    }
    }
    }

  • 相关阅读:
    以CCF CSP认证为抓手,积极探索软件基础能力递进式培养体系
    HDU1878 欧拉回路
    HDU1878 欧拉回路
    Java---casting(对象转型)
    Java---package和import语句
    Java---方法的重写
    Java---继承中的构造方法
    Java---内存分析
    Java---多个类写在一个类文件中
    Java---SSH框架认识
  • 原文地址:https://www.cnblogs.com/gameprogram/p/2419893.html
Copyright © 2011-2022 走看看