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

    }

Unity中用触摸控制物体旋转和放大的更多相关文章

  1. Hololens开发笔记之Gesture手势识别(Manipulation手势控制物体旋转)

    Manipulation gesture:保持点击手势,在3D世界中绝对运动 当你想要全息图像1:1响应用户手部移动时,操纵手势能被用于移动.缩放或旋转全息图像.如此的一个用处是使得用户可以在世界中绘 ...

  2. unity 使用OnDrag实现物体旋转

    通过监听UGUI的OnDrag事件 实现对3D物体的旋转 实现IDragHandler接口 void IDragHandler.OnDrag(PointerEventData eventData) { ...

  3. Unity3d 控制物体移动、旋转、缩放

    在Unity中通过利用 Input Manager(输入管理器)可以很简单的实现对一个物体进行移动.旋转.缩放操作. 演示代码: //通过虚拟轴控制物体移动.旋转.缩放 public class Mo ...

  4. 【转载】ArcBall二维控制三维旋转

    原文:http://oviliazhang.diandian.com/post/2012-05-19/40027878859 由于目前大多的显示器是二维的,要控制三维物体的旋转就显得不那么直接了.Ar ...

  5. Unity在UI界面上显示3D模型/物体,控制模型旋转

    Unity3D物体在UI界面的显示 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...

  6. Unity3D 几个基本动画(控制物体移动、旋转、缩放)

    Transform基本移动函数: 1.指定方向移动: //移动速度 float TranslateSpeed = 10f; //Vector3.forward 表示"向前" tra ...

  7. Unity编程回忆录之控制物体移动

    最新心血来潮,然后开始学习Unity3D游戏开发引擎,对于一个主流的跨平台3D游戏开发引擎,我已经深深的为他着迷了,于是果断的开始学习这个引擎,而且刚刚预装的游戏引擎最新版中4.3版本已经开始原生支持 ...

  8. UNITY polygon collider不随物体旋转

    U3D中的一般包围框如 boxcollider, meshcollider, capsule collider等都会随物体旋转而旋转.然而polygon collider却不会. 补充:原来所有2D包 ...

  9. Unity —— 通过鼠标点击控制物体移动

    //ClickMove - - 通过鼠标点击控制物体移动 using System.Collections; using System.Collections.Generic; using Unity ...

随机推荐

  1. vnc/route/ifconfig 配置

    重启网卡的方法: 1 network 利用root帐户 # service network restart ############################################## ...

  2. Android studio中导入第三方类库

    常常在github上看到一些好用的框架,但是对于一个新手怎样在android studio上导入去总会遇到各种麻烦,索性来研究下第三方类库怎样在android studio上导入. 以我在github ...

  3. ubuntu修改默认系统启动项

    sudo gedit /etc/default/grub 文件中有一段: GRUB_DEFAULT= 0代表默认从第一项启动 1代表从第二项启动 依次类推 将数字改成你想要启动的 修改完保存关闭,然后 ...

  4. android下载

    1. 源码下载链接: http://source.android.com/source/downloading.html 参考链接: Android源码下载方法详解 2. SDK下载 http://d ...

  5. Linux命令-权限管理命令:chmod

    特别注意:在linux中,目录通常是有r和x两个权限的.删除文件的前题是要对文件所在的目录有w的权限才可以. cd /tmp 切换到tmp目录下面 touch chengshi.list 在当前目录中 ...

  6. 自增长主键Id的设计

    http://www.cnblogs.com/lhking/p/3945865.html

  7. Python装饰器(Decorator)简介

    Python有许多出色的语言特性,装饰器(Decorator)便是其中一朵奇葩.先来看看一段代码: def deco1(f): print 'decorate 1' return f def deco ...

  8. js 根据title从下级往上级查找

    var menuData = [{ name: 'manage', title: '测试1', icon: 'home', }, { title: '测试2', name: 'car-parent', ...

  9. Atitit.c# .net 3.5 4.0 4.5 5.0 6.0各个版本新特性战略规划总结

    Atitit.c# .net 3.5 4.0 各个版本新特性战略规划总结 1. --------------.Net Framework版本同CLR版本的关系1 2. paip.----------- ...

  10. beyond compare比较工具设置

    beyond compare用于比较的工具,云盘:比较   链接: https://pan.baidu.com/s/1boZbB0F