Unity 鼠標實現對物體的移動、縮放、旋轉

文章目錄

  • 1. 代碼
  • 2. 測試場景

1. 代碼

using UnityEngine;public class ObjectManipulation : MonoBehaviour
{// 縮放比例限制public float MinScale = 0.2f;public float MaxScale = 3.0f;// 縮放速率private float scaleRate = 1f;// 新尺寸private float newScale;// 射線private Ray ray;private RaycastHit hitInfo;private bool isDragging = false;private Vector3 offset;// 旋轉private float rotationSpeed = 5.0f;private void OnMouseDown(){isDragging = true;offset = gameObject.transform.position - GetMouseWorldPosition();}private void OnMouseUp(){isDragging = false;}private void Update(){// 拖拽if (isDragging){Vector3 newPosition = GetMouseWorldPosition() + offset;transform.position = newPosition;}// 旋轉if (Input.GetMouseButton(1)){float mousX = Input.GetAxis("Mouse X");float mousY = Input.GetAxis("Mouse Y");transform.Rotate(mousY * rotationSpeed, -mousX * rotationSpeed, 0, Space.World);}// 縮放ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out hitInfo)){if (Input.GetAxis("Mouse ScrollWheel") != 0){newScale += Input.GetAxis("Mouse ScrollWheel") * scaleRate;newScale = Mathf.Clamp(newScale, MinScale, MaxScale);transform.localScale = new Vector3(newScale, newScale, newScale);}}}private Vector3 GetMouseWorldPosition(){Vector3 mousePos = Input.mousePosition;mousePos.z = -Camera.main.transform.position.z;return Camera.main.ScreenToWorldPoint(mousePos);}
}

2. 測試場景

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43155.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43155.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43155.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Windows系統編程】03.遠線程注入ShellCode

shellcode&#xff1a;本質上也是一段普通的代碼&#xff0c;只不過特殊的編程手法&#xff0c;可以在任意環境下&#xff0c;不依賴于原有的依賴庫執行。 遠程線程 #include <iostream> #include <windows.h> #include <TlHelp32.h>int main(){HANDLE hPr…

Educational Codeforces Round 153 (Rated for Div. 2)ABC

Educational Codeforces Round 153 (Rated for Div. 2) 目錄 A. Not a Substring題目大意思路核心代碼 B. Fancy Coins題目大意思想核心代碼 C. Game on Permutation題目大意思想核心代碼 A. Not a Substring 題目大意 給定一個只包含“&#xff08;”和“&#xff09;”這兩…

react-native-webview RN和html雙向通信

rn登錄后得到的token需要傳遞給網頁&#xff0c;js獲取到的瀏覽器信息需要傳遞給rn RN Index.js: import React from react import { WebView } from react-native-webview import useList from ./useListexport default function Index(props) {const { uri, jsCode, webVie…

iPhone刪除的照片能恢復嗎?不小心誤刪了照片怎么找回?

iPhone最近刪除清空了照片還能恢復嗎&#xff1f;大家都知道&#xff0c;照片對于我們來說是承載著美好回憶的一種形式。它記錄著我們的平淡生活&#xff0c;也留住了我們的美好瞬間&#xff0c;具有極其重要的紀念價值。 照片不小心誤刪是一件非常難受的事&#xff0c;那么iP…

android TextView 超出長度使用省略號

在Android中最常見的需求&#xff0c;就是在在外部展示信息時&#xff0c;需要簡要展示內容。TextView僅需在靜態布局文件中設置以下幾個屬性&#xff1a; android:maxWidth“100dp” // 寬度是多少才算超出 android:maxLines"2" // 高度多少才算超出 android:elli…

React下載文件的兩種方式

React下載文件的兩種方式 - 代碼先鋒網 不知道有用沒用看著挺整齊 沒試過 1、GET類型下載 download url > {const eleLink document.createElement(a);eleLink.style.display none;// eleLink.target "_blank"eleLink.href url;// eleLink.href record;d…

Centos7 配置Docker鏡像加速器

docker實戰(一):centos7 yum安裝docker docker實戰(二):基礎命令篇 docker實戰(三):docker網絡模式(超詳細) docker實戰(四):docker架構原理 docker實戰(五):docker鏡像及倉庫配置 docker實戰(六):docker 網絡及數據卷設置 docker實戰(七):docker 性質及版本選擇 認知升…

CentOS系統環境搭建(五)——Centos7安裝maven

centos系統環境搭建專欄&#x1f517;點擊跳轉 Centos7安裝maven 下載壓縮包 maven下載官網 解壓 壓縮包放置到/usr/local tar -xvf apache-maven-3.9.2-bin.tar.gz配置環境變量 vim /etc/profile在最下面追加 MAVEN_HOME/usr/local/apache-maven-3.9.2 export PATH${MAV…

Jenkins 監控dist.zip文件內容發生變化 觸發自動部署

為Jenkins添加plugin http://xx:xx/manage 創建一個任務 構建觸發器 每3分鐘掃描一次&#xff0c;發現指定文件build.zip文件的MD5發生變化后 觸發任務

【C++學習手札】一文帶你認識C++虛繼承??

食用指南&#xff1a;本文在有C基礎的情況下食用更佳 &#x1f340;本文前置知識&#xff1a;C虛函數&#xff08;很重要&#xff0c;內部剖析&#xff09; ??今日夜電波&#xff1a;僕らのつづき—柊優花 1:06 ━━━━━━?&#x1f49f;──────── 3:51 …

創建密碼庫/創建用戶帳戶/更新 Ansible 庫的密鑰/ 配置cron作業

目錄 創建密碼庫 創建用戶帳戶 更新 Ansible 庫的密鑰 配置cron作業 創建密碼庫 按照下方所述&#xff0c;創建一個 Ansible 庫來存儲用戶密碼&#xff1a; 庫名稱為 /home/curtis/ansible/locker.yml 庫中含有兩個變量&#xff0c;名稱如下&#xff1a; pw_developer&#…

神經網絡基礎-神經網絡補充概念-39-梯度消失與梯度爆炸

簡介 梯度消失和梯度爆炸是在深度神經網絡中訓練過程中可能出現的問題&#xff0c;導致模型難以訓練或無法收斂。這些問題與反向傳播算法中的梯度計算有關。 概念 梯度消失&#xff08;Gradient Vanishing&#xff09;&#xff1a;在深層神經網絡中&#xff0c;特別是具有很…

File inclusion

文章目錄 File inclusion(local)File inclusion(remote) File inclusion(local) 隨便選擇一個點擊提交&#xff0c;提交后觀察 url ?filename 我們可以使用相對路徑../../../../../訪問我們想要看到的文件內容 查看windows系統的主機映射文件../../../../Windows/System32/…

ShardingSphere 可觀測 SQL 指標監控

ShardingSphere并不負責如何采集、存儲以及展示應用性能監控的相關數據&#xff0c;而是將SQL解析與SQL執行這兩塊數據分片的最核心的相關信息發送至應用性能監控系統&#xff0c;并交由其處理。 換句話說&#xff0c;ShardingSphere僅負責產生具有價值的數據&#xff0c;并通過…

Go 語言中排序的 3 種方法

原文鏈接&#xff1a; Go 語言中排序的 3 種方法 在寫代碼過程中&#xff0c;排序是經常會遇到的需求&#xff0c;本文會介紹三種常用的方法。 廢話不多說&#xff0c;下面正文開始。 使用標準庫 根據場景直接使用標準庫中的方法&#xff0c;比如&#xff1a; sort.Intsso…

【C++】AVL樹(平衡二叉樹)

目錄 一、AVL樹的定義二、AVL樹的作用三、AVL樹的插入操作插入——平衡因子的更新插入——左單旋插入——右單旋插入——左右雙旋插入——右左雙旋 四、ALVL樹的驗證五、AVL樹的性能 一、AVL樹的定義 AVL樹&#xff0c;全稱 平衡二叉搜索&#xff08;排序&#xff09;樹。 二…

一次Linux圖形化界面恢復

一次Linux 圖形化界面恢復 一次Linux 圖形化界面恢復出現問題場景問題排查 一次Linux 圖形化界面恢復 出現問題場景 使用xmanager遠程連接虛機的CentOS7系統圖形界面出現已拒絕x11轉移申請問題&#xff0c;在折騰X11過程中&#xff0c;安裝與卸載的過程中不小心把xorg-x11-xa…

HCIP的交換機實驗

題目 拓撲圖 PC1/3接口用access 創建WLAN LSW1 創建WLAN [lsw1]vlan batch 2 to 6[lsw1-Ethernet0/0/1]p [lsw1-Ethernet0/0/1]port l [lsw1-Ethernet0/0/1]port link- [lsw1-Ethernet0/0/1]port link-flap [lsw1-Ethernet0/0/1]port link-type acc [lsw1-Ethernet0/0…

kubeasz在線安裝K8S集群單master集群(kubeasz安裝之二)

一、介紹 Kubeasz 是一個基于 Ansible 自動化工具&#xff0c;用于快速部署和管理 Kubernetes 集群的工具。它支持快速部署高可用的 Kubernetes 集群&#xff0c;支持容器化部署&#xff0c;可以方便地擴展集群規模&#xff0c;支持多租戶&#xff0c;提供了強大的監控和日志分…

Bigemap Pro國產基礎軟件介紹——一款多源數據處理軟件

一、軟件簡介 Bigemap Pro是由成都比格圖數據處理有限公司(下稱”BIGEMAP”)開發和發行的國產大數據處理基礎軟件。Bigemap Pro是在BIGEMAP GIS Office基礎上&#xff0c;經過十年的用戶積累與反饋和技術更新迭代出的新一代基礎軟件產品。Bigemap Pro國產基礎軟件集成了數據采…