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;
    }
    }
    }
    }

  • 相关阅读:
    linux线程
    linux线程
    c++之堆、栈、数据段、
    fork()、僵死进程和孤儿进程
    linux之管理mysql
    linux之管理apache
    Django 时间与时区设置问题
    Django rest framework:__str__ returned non-string (type NoneType) 真正原因
    Django获取当前页面的URL——小记
    Django中出现:TemplateDoesNotExist at
  • 原文地址:https://www.cnblogs.com/gameprogram/p/2419893.html
Copyright © 2011-2022 走看看