Unity两个手指放大图片的方法
2015-12-28 13:35
711 查看
Unity多点触控是个坑,试了好几次都有各种问题(其实是我太菜了)。不过这个方法可以两个手指放大缩小图片,百试不爽!!!!
public GameObject AddSizeImage;
private float fingerX = 0;
private float fingerY = 0;
private float DistanceNow = 0;
private float DistanceLast = 0;
private float MaxDistance = 5;
private float MinDistance = 1;
private float TheDistance = 3;
void FingerControl() //两个手指放大图片的方法
{
if (Input.touchCount > 1 && (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved))
{
DistanceNow = Vector2.Distance(Input.GetTouch(0).position, Input.GetTouch(1).position); //获得两个手指的坐标点距离
if (DistanceNow > DistanceLast)
{
TheDistance += Vector2.Distance(Input.GetTouch(0).deltaPosition, Input.GetTouch(1).deltaPosition)*0.01F; //图像尺寸的变化量
}
else
{
TheDistance -= Vector2.Distance(Input.GetTouch(0).deltaPosition, Input.GetTouch(1).deltaPosition)*0.01F; //图像尺寸的变化量
}
DistanceLast = DistanceNow; //实时更新两个手指间距
}
if (TheDistance <= MinDistance) //限定最小尺寸
{
TheDistance = MinDistance;
}
if (TheDistance >= MaxDistance) //限定最大尺寸
{
TheDistance = MaxDistance;
}
public GameObject AddSizeImage;
private float fingerX = 0;
private float fingerY = 0;
private float DistanceNow = 0;
private float DistanceLast = 0;
private float MaxDistance = 5;
private float MinDistance = 1;
private float TheDistance = 3;
void FingerControl() //两个手指放大图片的方法
{
if (Input.touchCount > 1 && (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved))
{
DistanceNow = Vector2.Distance(Input.GetTouch(0).position, Input.GetTouch(1).position); //获得两个手指的坐标点距离
if (DistanceNow > DistanceLast)
{
TheDistance += Vector2.Distance(Input.GetTouch(0).deltaPosition, Input.GetTouch(1).deltaPosition)*0.01F; //图像尺寸的变化量
}
else
{
TheDistance -= Vector2.Distance(Input.GetTouch(0).deltaPosition, Input.GetTouch(1).deltaPosition)*0.01F; //图像尺寸的变化量
}
DistanceLast = DistanceNow; //实时更新两个手指间距
}
if (TheDistance <= MinDistance) //限定最小尺寸
{
TheDistance = MinDistance;
}
if (TheDistance >= MaxDistance) //限定最大尺寸
{
TheDistance = MaxDistance;
}
AddSizeImage.transform.localScale = new Vector3(TheDistance, TheDistance, 0); }
相关文章推荐
- Unity窗口化无边框模式
- Unity获取游戏对象
- Unity调用外部EXE和启动浏览器(手机端也可以启动IE内核)
- unity中宏定义平台
- Unity3D AssetStore下载的文件保存位置
- Unity3D 摄像机
- Unity3D 2D游戏开发 官方教程。(二)
- blender 给人物角色绑定骨骼到unity3d
- unity, StopAllCoroutines导致bug的解决办法
- Unity3D 2D游戏开发 官方教程。(三)
- Unity3D 2D游戏开发 官方教程。(一)
- 【Unity实用小方法】判断贴图是否为透明贴图
- unity 定位
- 从Unity引擎过度到Unreal4引擎(最终版)
- Unity官网教程之Tips
- Unity3D必备知识: 物理学公式
- 解读Unity中的CG编写Shader系列1——初识CG
- 【Unity Shader】基于UGUI的水波倒影按钮
- C# 文件选择对话框,Unity3d文件保存对话框
- Unity3D教程:茄子童萌會