/*
Touch Orbit
Programmed by: Randal J. Phillips (Caliber Mengsk)
Original Creation Date: 12/16/2011
Last Updated: 12/16/2011
Desctiption: Simple orbit by one touch and drag, as well as pinch to zoom with two fingers.
*/
var x:float;
var y:float;
var xSpeed:float;
var ySpeed:float;
var pinchSpeed:float;
var distance:float = 10;
var minimumDistance:float = 5;
var maximumDistance:float = 100;
private var touch:Touch;
private var lastDist:float = 0;
private var curDist:float = 0;
private var gameCamera:Camera;
function Start ()
{
gameCamera = Camera.mainCamera;
}
function Update ()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
Application.Quit();
}
if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
//One finger touch does orbit
touch = Input.GetTouch(0);
x += touch.deltaPosition.x * xSpeed * 0.02;
y -= touch.deltaPosition.y * ySpeed * 0.02;
}
if (Input.touchCount > 1 && (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved))
{
//Two finger touch does pinch to zoom
var touch1 = Input.GetTouch(0);
var touch2 = Input.GetTouch(1);
curDist = Vector2.Distance(touch1.position, touch2.position);
if(curDist > lastDist)
{
distance += Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
}else{
distance -= Vector2.Distance(touch1.deltaPosition, touch2.deltaPosition)*pinchSpeed/10;
}
lastDist = curDist;
}
if(distance <= minimumDistance)
{
//minimum camera distance
distance = minimumDistance;
}
if(distance >= maximumDistance)
{
//maximum camera distance
distance = maximumDistance;
}
//Sets rotation
var rotation = Quaternion.Euler(y, x, 0);
//Sets zoom
var position = rotation * Vector3(0.0, 0.0, -distance) + Vector3(0,0,0);
//Applies rotation and position
transform.rotation = rotation;
transform.position = position;
}
function OnGUI()
{
//Simple output to display the distance from the center
GUI.Label(Rect(0,0,Screen.width, Screen.height),distance.ToString());
}
分享到:
相关推荐
实现对指定图片的多点触控 实现缩放功能 很好的实现对指定图片的放大缩小 里面加入了gallery 容器 实现多张图片的存储
两个手指滑动缩放画面用于Android手机端,没有进行ios的测试
Unity 多点触控源码,多点触控插件,TouchScript
QT5.X版本的多点触控使用双手指缩放图片源码,使用QTCreater编译即可,已在imx6的Linux4.1.15上调试通过,该功能需要触摸屏支持多点触控,如果不支持就不用浪费时间了,第二,需要你自己把触摸屏的驱动移植好,且...
android多点触控 两指缩放的demo,以缩放TextView的文字缩放为例~
flash as3 多点触控-缩放-旋转-滑动,多点触控常用功能,可以用作触摸屏,直接复制用。
TouchScript-9_unity_broadqa9_多点触控插件_TouchScript_源码.rar
多点触控缩放图片及单点触控图片移动
Qt实现多点触控与手势识别
qt5实现多点触控window10
多点触控缩放图像~ 解决网上某些demo的问题:图像缩小后反弹导致图像变形、缩放功能和onClick、onLongClick事件混乱等
ImageView图片实现 多点触控旋转
Input.GetTouch在移动端实现多点触控的代码,及利用Unity Remote5进行测试
android多点触控缩放移动旋转等手势,灵敏度高,有源代码,跟大家共同交流学习。
这是我在论坛看到的,unity多点触控。感觉还不错,分享给大家 //用于绑定参照物对象 var target : Transform; //缩放系数 var distance = 10.0; //左右滑动移动速度 var xSpeed = 250.0; var ySpeed = 120.0; //...
多图片预览功能以及图片多点触控(缩放,双击,拖动) 1.图片自由缩放 2.双击图片放大与缩小 3.图片放大后可以自由移动 4.与ViewPager结合实现多张图片的预览功能
目前Google开放的API多指手势只有缩放可以直接调用,下面是一位外国大牛写的2指旋转的手势检测器。代码风格非常炫。程序支持图片缩放和旋转,并改变透明度。方便急需寻找多点手势的你提供帮助
使用ESP32模拟多点蓝牙触摸屏,可以通过android手机连接进行测试。
单张图片预览中图片随手势缩放,平移,并且支持多点触控操作
Unity3D内容包含了三级页面,以及所有的操作按钮。