【Unity开发小技巧】模型单指旋转双指缩放功能代码(多种情况)
欢迎加入Unity业内qq交流群:956187480
qq扫描二维码加群
1.pc端通过鼠标中键调整相机的FieldOfView属性的值(会发生形变不建议)
void Update(){if (Input.GetAxis("Mouse ScrollWheel") < 0){Camera.main.fieldOfView += 2;Camera.main.fieldOfView = Camera.main.fieldOfView >= 90 ? 90 : Camera.main.fieldOfView;if (Camera.main.orthographicSize <= 20)Camera.main.orthographicSize += 0.5F;}if (Input.GetAxis("Mouse ScrollWheel") > 0){Camera.main.fieldOfView -= 2;Camera.main.fieldOfView = Camera.main.fieldOfView <= 30 ? 30 : Camera.main.fieldOfView;if (Camera.main.orthographicSize >= 1)Camera.main.orthographicSize -= 0.5F;}// 鼠标轴控制相机的远近//if ((Input.mouseScrollDelta.y < 0 && Camera.main.fieldOfView >= 3) || Input.mouseScrollDelta.y > 0 && Camera.main.fieldOfView <= 80)//{// Camera.main.fieldOfView += Input.mouseScrollDelta.y * camDepthSmooth * Time.deltaTime;//}
}
2.移动端通过控制模型的Scale属性
public static Vector3 currentScale;private Touch oldTouch1;private Touch oldTouch2;void Update(){if (Input.GetMouseButton(0)){//单指滑动旋转if (Input.touchCount == 1){Touch touch = Input.GetTouch(0);Vector2 deltaPos = touch.deltaPosition;if (touch.phase == TouchPhase.Moved){transform.Rotate(new Vector3(deltaPos.y, -deltaPos.x, 0) * 0.5f, Space.Self);}}if (Input.touchCount == 2){//缩放Touch newTouch1 = Input.GetTouch(0);Touch newTouch2 = Input.GetTouch(1);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;float scaleFactor = offset / 200f;Vector3 localScale = transform.localScale;Vector3 scale = new Vector3(localScale.x + scaleFactor, localScale.y + scaleFactor, localScale.z + scaleFactor);//限制最低最高值if ((scale.x >= 0.5f && scale.x <= 3) && (scale.y >= 0.5f && scale.y <= 3f) && (scale.z >= 0.5f && scale.z <= 3f)){transform.localScale = scale;currentScale = scale;}oldTouch1 = newTouch1;oldTouch2 = newTouch2;}}}
3.pc端鼠标旋转缩放
Vector3 mPrevPos;void Update(){if (Input.GetMouseButton(0)){Vector3 deltaPos = Input.mousePosition - mPrevPos;transform.Rotate(new Vector3(deltaPos.y, -deltaPos.x, 0) * Time.deltaTime*10,Space.World);}mPrevPos = Input.mousePosition;if (Input.GetAxis("Mouse ScrollWheel") < 0){transform.localScale -= Vector3.one * 0.1f;}if (Input.GetAxis("Mouse ScrollWheel") > 0){transform.localScale += Vector3.one * 0.1f;}}
欢迎加入Unity业内qq交流群:956187480
qq扫描二维码加群
【Unity开发小技巧】模型单指旋转双指缩放功能代码(多种情况)相关推荐
- Android Image单指滑动双指缩放功能
在android app开发过程中,对于单指滑动,双指缩放功能的实现,也是常用的功能 在对ImageView的处理中,可以自定义ImageView在onTouch事件中对单指和双指缩放处理,也可以 注 ...
- 【Unity开发小技巧】FMS有限状态机详解
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群 在实际开发中很多时候对某类别的对象都需要有多种状态的管理和切换,这个时候我们就可以引入FMS状态机概念,有限状态机主要有三要素 ...
- 【Unity开发小技巧】Unity日志输出存储
一般我们在做项目的反馈日志收集的时候都会根据提交的后台日志判断线后Bug产生的大概原因,直接帮我们缩小范围. #region 模块信息 // ***************************** ...
- 【Unity开发小技巧】Unity打包IOS端APP
目录 一:安装IOS的模块并打包 1.Hub可以添加IOS模块 2.项目内部下载安装ISO模块 3.添加我们需要打包的场景 二:XCode工程内部设置并打包 1.mac商店安装XCode软件并打开xc ...
- 【Unity开发小技巧】AudioManager声音管理器
欢迎加入Unity业内qq交流群:956187480 qq扫描二维码加群,行业纵横颇多,每个人精通领域各异,旨在交流, 在项目里做音频管理的时候,我们往往是跟资源管理结合起来的,但是这里我们就单音频管 ...
- 【Unity开发小技巧】iOS APP下载安装时,如果出现此时无法下载安装APP的字样时,一些解决思路
目录 一.OS系统和IOS版本更新 二:App-Store方式 三:Ad-hoc方式 四:In-house 方式 五: Architecture设置错误 六:App 支持的 iOS 系统版本,和当前 ...
- 【Unity开发小技巧】Unity随机概率扩展(概率可调控)
做了以下两张图有助于理解,如果想调控概率的话直接修改概率数组即可,实战案例:http://t.csdn.cn/P9QKJ 其实在做概率类相关的界面效果的时候,我们真实做法都是在刷新界面前已经把结果获取 ...
- 移动Web开发小技巧
移动Web开发小技巧 添加到主屏后的标题(IOS) name="apple-mobile-web-app-title" content="标题"> 启用 ...
- Delphi三层开发小技巧:TClientDataSet的Delta妙用
Delphi三层开发小技巧:TClientDataSet的Delta妙用 Delphi做三层开发时,很多人都会在客户端放一个TClientDataSet,中间层远程数据模块就对应放一个TDataSet ...
最新文章
- Python--day46--MySQL视图
- Spring Boot的exit code
- 「分布式系统理论」系列专题整理
- [转载] python __import__ 搜索路径详解
- vivado使用方法
- hbase的region分区
- EmmyLua For Intellij IDEA注解功能的一些用法
- Java根据word模板生成word文件
- 人人商城二次开发 各个装修模块diypage的自定义样式
- SVG中年月日相关的表达式
- Error evaluating expression ‘’. Return value () was not iterable.
- java设置excel密码
- delete adjacent duplicates from用法(以某个关键字删除相邻重复行的数据)
- python opencv 人体/人脸识别 简易demo
- iOS开发——加载、滑动翻阅大量图片解决方案详解 .
- 吴恩达机器学习中BP神经网络算法公式的详细推导
- 桌面运维用到的网站(转载)
- 提供一个免费的CSDN下载账号
- 【自然框架】元数据的数据库结构的详细说明和示例(二):数据库描述部分...
- 使用Echarts完成对中国地图的绘制