鼠标控制物体旋转、移动、缩放(Unity3D)

您所在的位置:网站首页 unity鼠标左键点击 鼠标控制物体旋转、移动、缩放(Unity3D)

鼠标控制物体旋转、移动、缩放(Unity3D)

2024-01-03 10:13| 来源: 网络整理| 查看: 265

这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战

推荐阅读

CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 一、前言

Unity3D对于鼠标操作物体的旋转、移动、缩放的功能点使用的比较多。

今天就分享如何使用Unity实现鼠标对于物体的旋转、移动、缩放。

效果图: 在这里插入图片描述

二、知识点

Input.GetMouseButton(0) 获取鼠标输入,参数为一个int值 为0的时候获取的是左键

Input.GetMouseButton(1) 为1的时候获取的是右键

Input.GetMouseButton(2) 为2的时候获取的是中键(就是那个滑轮)

Input.GetMouseButton 鼠标按压

Input.GetMouseButtonUp 鼠标点击

Input.GetMouseButtonDown 鼠标松开

Camera.main.ScreenToWorldPoint 屏幕坐标转化为世界坐标

Quaternion rotation = Quaternion.Euler(0, 0, 0); 欧拉角转化为四元数

三、代码分享 using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseControlModel : MonoBehaviour { //旋转最大角度 public int yMinLimit = -20; public int yMaxLimit = 80; //旋转速度 public float xSpeed = 250.0f; public float ySpeed = 120.0f; //旋转角度 private float x = 0.0f; private float y = 0.0f; void Update() { if (Input.GetMouseButton(0)) { //将屏幕坐标转化为世界坐标 ScreenToWorldPoint函数的z轴不能为0,不然返回摄像机的位置,而Input.mousePosition的z轴为0 //z轴设成10的原因是摄像机坐标是(0,0,-10),而物体的坐标是(0,0,0),所以加上10,正好是转化后物体跟摄像机的距离 Vector3 temp = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10)); transform.position = temp; } else if (Input.GetMouseButton(1)) { //Input.GetAxis("MouseX")获取鼠标移动的X轴的距离 x += Input.GetAxis("Mouse X") * xSpeed * 0.02f; y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f; y = ClampAngle(y, yMinLimit, yMaxLimit); //欧拉角转化为四元数 Quaternion rotation = Quaternion.Euler(y, x, 0); transform.rotation = rotation; } else if (Input.GetAxis("Mouse ScrollWheel") != 0) { //鼠标滚动滑轮 值就会变化 if (Input.GetAxis("Mouse ScrollWheel") < 0) { //范围值限定 if (Camera.main.fieldOfView 2) Camera.main.fieldOfView -= 2; if (Camera.main.orthographicSize >= 1) Camera.main.orthographicSize -= 0.5F; } } } //角度范围值限定 static float ClampAngle(float angle, float min, float max) { if (angle < -360) angle += 360; if (angle > 360) angle -= 360; return Mathf.Clamp(angle, min, max); } }

谢谢大家!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3