002-实现Unity3d中触摸屏幕控制物体的旋转和缩放 代码实现
1、直接帮到物体的身上就可以了
using UnityEngine;
using System.Collections;
using System.IO;
public class hehe : 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;
}
}
002-实现Unity3d中触摸屏幕控制物体的旋转和缩放 代码实现相关推荐
- 【虚拟仿真】Unity3D中实现控制物体的旋转、移动、缩放
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦. 一.前言 ...
- Unity3d中最简单物体的旋转移动
void Awake (){ } //初始化函数,在游戏开始时系统自动调用.一般用来创建变量之类的东西. void Start(){ } //初始化函数,在所有Awake函数运行完之后(一般是这样,但 ...
- Unity3D研究院之控制模型移动旋转与碰撞(七)
这一篇不错,解决了我一个一直忽略的问题 上一章介绍了模型的旋转与平移,本章介绍一些好玩的,通过按钮来控制模型的移动与镜头的跟随,脚本参数的传递.个人觉得Unity3D 这套游戏引擎真的很棒,它可以为开 ...
- shader编程-二维空间中使用矩阵实现物体的旋转、缩放、平移变换(WebGL-Shader开发基础03)
shader编程-二维空间中使用矩阵实现物体的旋转.缩放.平移变换 1. 变换前物体的绘制 2. 物体旋转的实现 3. 物体缩放的实现 4. 物体平移的实现 5. 平移与缩放另外一种实现方式 6. 所 ...
- android matrix 实现点击旋转,Android中利用matrix 控制图片的旋转、缩放、移动
本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: /** * 使用矩阵控制图片移动.缩放.旋转 */ public class CommonImgEffectVi ...
- Unity实现安卓端手势控制摄像机的旋转和缩放
说明 上一篇记录了PC端鼠标控制摄像机的移动和缩放,这一篇写的是在安卓机上实现手势控制摄像机围绕一个物体进行旋转和缩放,两篇的代码逻辑基本一样只是输入检测有区别,这里我是分开记录,没有整合[Uni ...
- Android matrix 控制图片的旋转、缩放、移动
本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: /** * 使用矩阵控制图片移动.缩放.旋转 * @author 张进 */ public class Comm ...
- WebGL入门(三十四)-三维空间中鼠标控制物体旋转,用鼠标控制立方体的旋转
用鼠标控制立方体的旋转 1. demo效果 2. 实现要点 2.1 注册鼠标事件 2.1.1 注册鼠标事件函数的声明 2.1.2 注册鼠标事件函数的调用 2.2 纹理图片加载 2.3 图形绘制 3. ...
- 在Unity3D中使用uGUI实现3D旋转特效
各位朋友大家好,欢迎大家关注我的博客,我是Payne,我的博客地址是http://qinyuanpei.com.最近一位朋友问我,如何在Unity引擎中实现类似<英雄联盟>中选择皮肤时 ...
最新文章
- 多尺度目标检测--Scale-Aware Trident Networks for Object Detection
- 2020年,语义分割可以在哪些方向进行研究并取得突破?
- windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
- 【Python基础】学习用Pandas处理分类数据!
- linux vim可视模式、末行模式、保存退出快捷操作
- 配置React项目的运行环境
- druid不能close mysql连接_druid长时间无操作无法保持连接!!
- [css] 举例说明BFC会与float元素相互覆盖吗?为什么?
- python2.7无法使用pip(安装easy_install)
- asp.net excel导入 wps_4种Excel格式的转换方法,总有一种适合你!赶紧试试看
- Datawhale 零基础入门CV赛事-Task4 模型训练与验证
- 设为首页 添加到收藏夹 (share)
- kakfa学习教程一
- vivo换手机云服务器,换新手机迁移数据很麻烦?这里两招教你快速迁移,有云服务不用愁...
- 通过OpenSSL创建自签名证书在Flask实现HTTPS
- 爱普生L4168打印出来是白纸,复印OK,打印机测试也OK 解决方案
- 交换机不同vlan不同网段通过核心交换机配置VLANIF通信
- 惠普笔记本电脑驱动BIOS下载中心,战66驱动下载
- Linux与Windows设置共享文件夹的实现
- 对大一c语言学习的感想