zoukankan      html  css  js  c++  java
  • Unity中用触摸控制物体旋转和放大

    1. using UnityEngine;
      using System.Collections;
      using System.IO;

      public class ScaleAndRotate : MonoBehaviour
      {
      private Touch oldTouch1; //上次触摸点1(手指1)
      private Touch oldTouch2; //上次触摸点2(手指2)

      void Start()
      {

      }

      void Update () {

      //没有触摸
      if ( Input.touchCount <= 0 ){
      return;
      }

      //单点触摸, 水平上下旋转
      if( 1 == Input.touchCount ){
      Touch touch = Input.GetTouch (0);
      Vector2 deltaPos = touch.deltaPosition;
      transform.Rotate(Vector3.down * deltaPos.x , Space.World);
      transform.Rotate(Vector3.right * deltaPos.y , Space.World);
      }

      //多点触摸, 放大缩小
      Touch newTouch1 = Input.GetTouch (0);
      Touch newTouch2 = Input.GetTouch (1);

      //第2点刚开始接触屏幕, 只记录,不做处理
      if( newTouch2.phase == TouchPhase.Began ){
      oldTouch2 = newTouch2;
      oldTouch1 = newTouch1;
      return;
      }

      //计算老的两点距离和新的两点间距离,变大要放大模型,变小要缩放模型
      float oldDistance = Vector2.Distance(oldTouch1.position, oldTouch2.position);
      float newDistance = Vector2.Distance(newTouch1.position, newTouch2.position);

      //两个距离之差,为正表示放大手势, 为负表示缩小手势
      float offset = newDistance - oldDistance;

      //放大因子, 一个像素按 0.01倍来算(100可调整)
      float scaleFactor = offset / 100f;
      Vector3 localScale = transform.localScale;
      Vector3 scale = new Vector3(localScale.x + scaleFactor,
      localScale.y + scaleFactor,
      localScale.z + scaleFactor);

      //最小缩放到 0.3 倍
      if (scale.x > 0.3f && scale.y > 0.3f && scale.z > 0.3f) {
      transform.localScale = scale;
      }

      //记住最新的触摸点,下次使用
      oldTouch1 = newTouch1;
      oldTouch2 = newTouch2;
      }

      }

  • 相关阅读:
    译码器(选择器)
    RAM搭建
    ALU运算
    Base64
    关于Singleton
    C# WinForm导出Excel
    windows phone 前台布局以及画刷Brush使用 北京
    点击控件出现下沉或者倾斜技巧。(是你的控件不在死板,) 北京
    Centos5.4+Nginx+mysql5+php5+Zend3.3.3详细安装教程(转载请注明formating编写)
    如何锻炼身体
  • 原文地址:https://www.cnblogs.com/backlighting/p/5264472.html
Copyright © 2011-2022 走看看