Unity按住左键旋转物体,按住右键移动物体,移动端单指旋转物体,双指移动物体
来源:互联网 发布:不支持后端数据库设计 编辑:程序博客网 时间:2024/06/08 15:37
功能比较简单,直接上代码吧:
public class ModelController : MonoBehaviour { public Transform obj; public Camera objCamera;//模型摄像机void Update () {#if UNITY_IOS || UNITY_IPHONE || UNITY_ANDROID //单指旋转物体 if (Input.touchCount == 1 && obj != null) {obj.Rotate(Vector3.up, -Input.GetAxis("Mouse X") * 10, Space.World); obj.Rotate(Vector3.right, Input.GetAxis("Mouse Y") * 10, Space.World); } //双指移动物体 else if (Input.touchCount > 1 && obj != null) { Vector2 point; Vector3 targetScreenSpace = Camera.main.WorldToScreenPoint(obj.position); Touch t1 = Input.GetTouch(0); Touch t2 = Input.GetTouch(1); point = t2.position;//实时手指位置 if (t1.phase == TouchPhase.Moved && t2.phase == TouchPhase.Moved) { obj.position = objCamera.ScreenToWorldPoint(new Vector3(point.x,point.y, targetScreenSpace.z)); } } #elif UNITY_EDITOR //按住左键旋转物体 if (Input.GetMouseButton(0) && obj != null){ if (Input.GetMouseButton(0)) { obj.Rotate(Vector3.up, -Input.GetAxis("Mouse X") * 10, Space.World); obj.Rotate(Vector3.right, Input.GetAxis("Mouse Y") * 10, Space.World); } } //按住右键拖动物体 else if (Input.GetMouseButton(1) && obj != null) { Vector3 targetScreenSpace = objCamera.WorldToScreenPoint(obj.position);//用于获取物体的z轴坐标(物体离相机距离不变) Vector3 point = Input.mousePosition; obj.position = objCamera.ScreenToWorldPoint(new Vector3(point.x, point.y, targetScreenSpace.z)); } #endif }}
阅读全文
0 0
- Unity按住左键旋转物体,按住右键移动物体,移动端单指旋转物体,双指移动物体
- 物体移动和旋转
- unity 控制物体移动和旋转
- unity中根据鼠标移动旋转物体
- Unity 控制物体移动 旋转 缩放
- Unity设置物体移动、缩放和旋转
- unity3d鼠标移动、旋转物体
- 物体的旋转与移动
- 【原创】控制物体移动旋转
- untiy 物体移动旋转集锦
- 物体的移动与旋转
- 《鼠标点击物体,物体跟随光标移动》与《鼠标按住左键不放拖拽物体》
- Unity移动物体
- unity 拖动物体移动
- 物体移动
- 物体移动
- 物体移动
- Unity脚本,平滑跟随目标物体移动和旋转
- Capstone日志2017-12-13
- python3 关于文件的操作
- [HDU P2089]不要62
- 增量更新
- 引用传递
- Unity按住左键旋转物体,按住右键移动物体,移动端单指旋转物体,双指移动物体
- Java的接口理解
- Android中WebView与JS交互方式详解
- 用jQuery.ajaxSetup实现对请求和响应数据的过滤
- 数据结构实验之查找一:二叉排序树
- java中多个窗口同时买票的并发三种安全实现方式
- 移动服务安全现状分析!
- Spring1.2——bean相关
- 分钟秒钟的倒计时