【Unity】 鼠標拖動物體移動速度跟不上鼠標,會掉落

錯誤示范:

一開始把移動的代碼寫到update里去了,發現物體老是掉(總之移動非常不流暢,體驗感很差)

void Update(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, LayerMask.GetMask("Interactables"))){if (Input.GetMouseButton(0)){hit.transform.position=ScreenToWorldPos(Input.mousePosition);}}}public Vector3 ScreenToWorldPos(Vector3 screenPosition){Vector3 targetScreenPos = Camera.main.WorldToScreenPoint(depthReference.position);float depth = targetScreenPos.z;screenPosition.z = depth;Vector3 worldPosition = Camera.main.ScreenToWorldPoint(screenPosition);return worldPosition;}

修改:

把移動的代碼改到協程里更新就能流暢移動了

void Update(){Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);if (Physics.Raycast(ray, out RaycastHit hit, Mathf.Infinity, LayerMask.GetMask("Interactables"))){if (Input.GetMouseButtonDown(0)){StartCoroutine(Move(hit.collider.transform));}}}IEnumerator Move(Transform hitobj){while (true){if (Input.GetMouseButton(0) ){Vector3 targetPosition = ScreenToWorldPos(Input.mousePosition);hitobj.position = targetPosition;}yield return null;}}public Vector3 ScreenToWorldPos(Vector3 screenPosition){Vector3 targetScreenPos = Camera.main.WorldToScreenPoint(depthReference.position);float depth = targetScreenPos.z;screenPosition.z = depth;Vector3 worldPosition = Camera.main.ScreenToWorldPoint(screenPosition);return worldPosition;}


問了一下gpt大概是這個原理,說白了就是鼠標輸入不是逐幀更新的,它一直在更新,update執行速度跟不上,協程的執行速度跟得上(但是我還是沒明白為啥協程比update快,就算update重新啟動,可是執行的代碼都是一樣的,要么就是因為update每次都要重新進行射線檢測拖慢了速度吧)

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

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

相關文章

MATLAB 控制系統設計與仿真 - 30

用極點配置設計伺服系統 方法2-反饋修正 如果我們想只用前饋校正輸入,從而達到伺服控制的效果,我們需要很精確的知道系統的參數模型,否則系統輸出仍然具有較大的靜態誤差。 但是如果我們在誤差比較器和系統的前饋通道之間插入一個積分器&a…

VMware Windows Tools 存在認證繞過漏洞(CVE-2025-22230)

漏洞概述 博通公司(Broadcom)近日修復了 VMware Windows Tools 中存在的一個高危認證繞過漏洞,該漏洞編號為 CVE-2025-22230(CVSS 評分為 9.8)。VMware Windows Tools 是一套實用程序套件,可提升運行在 VM…

羅杰斯特回歸

定義 邏輯回歸其實就是原來的線性回歸加了激活函數,這個函數其實就是sigmoid函數,把一個回歸的連續數值壓縮到了0到1的空間,其實只要有函數能夠滿足把數值壓縮到0,1之間就可以(因為0到1之間的數值就是概率值) 對于分類…

Java多線程與JConsole實踐:從線程狀態到性能優化!!!

目錄 一、前言二、JConsole 使用教程二、線程的基本狀態2.1新建狀態(New)2.2就緒狀態(Ready)2.3運行狀態(Running)2.4 阻塞狀態(Blocked)2.5. 等待狀態(Waiting&#xff…

基于django優秀少兒圖書推薦網(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 時代在飛速進步,每個行業都在努力發展現在先進技術,通過這些先進的技術來提高自己的水平和優勢,圖書推薦網當然不能排除在外。本次開發的優秀少兒圖書推薦網是在實際應用和軟件工程的開發原理之上,運用Python語言、爬蟲技術…

《網絡管理》實踐環節01:OpenEuler22.03sp4安裝zabbix6.2

蘭生幽谷,不為莫服而不芳; 君子行義,不為莫知而止休。 1 環境 openEuler 22.03 LTSsp4PHP 8.0Apache 2Mysql 8.0zabbix6.2.4 表1-1 Zabbix網絡規劃(用你們自己的特征網段規劃) 主機名 IP 功能 備注 zbx6svr 19…

Axure項目實戰:智慧城市APP(七)我的、消息(顯示與隱藏交互)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! 課程主題:智慧城市APP 主要內容:我的、消息、活動模塊頁面 應用場景:消息頁設計、我的頁面設計以及活動頁面設計 案例展示&#xff…

晶晨S905L3A(B)-安卓9.0-開啟ADB和ROOT-支持IPTV6-支持外置游戲系統-支持多種無線芯片-支持救磚-完美通刷線刷固件包

晶晨S905L3A(B)-安卓9.0-開啟ADB和ROOT-支持IPTV6-支持外置游戲系統-支持多種無線芯片-支持救磚-完美通刷線刷固件包 適用型號:M401A、CM311-1a、CM311-1sa、B863AV3.1-M2、B863AV3.2-M、UNT403A、UNT413A、M411A、E900V22C、E900V22D、IP112H等等晶晨S905L3A(B)處…

【免費】2007-2019年各省地方財政科學技術支出數據

2007-2019年各省地方財政科學技術支出數據 1、時間:2007-2019年 2、來源:國家統計局、統計年鑒 3、指標:行政區劃代碼、地區、年份、地方財政科學技術支出 4、范圍:31省 5、指標說明:地方財政科學技術支出是指地方…

樹形結構的工具類TreeUtil

這個地方是以null為根節點,相關以null或者0自己在TreeUtil中加代碼,就行 基礎類 package com.jm.common.entity;import lombok.Data;import java.util.ArrayList; import java.util.List;/*** Author:JianWu* Date: 2025/3/26 9:02*/ Data public clas…

視頻聯網平臺智慧運維系統:智能時代的城市視覺中樞

引言:破解視頻運維的"帕累托困境" 在智慧城市與數字化轉型浪潮中,全球視頻監控設備保有量已突破10億臺,日均產生的視頻數據量超過10萬PB。然而,傳統運維模式正面臨三重困境: 海量設備管理失序:…

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ?? 目錄 DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌…

QML中使用Image顯示圖片和使用QQuickItem顯示圖片

在QML中顯示圖片時,Image元素和自定義QQuickItem有不同的特性和適用場景。以下是兩者的詳細對比及性能分析: 1. Image 元素 優點: 聲明式語法:簡單直觀,適合靜態圖片或簡單動態需求 Image {source: "image.png&…

【力扣刷題|第十七天】0-1 背包 完全背包

目標和 力扣題目網址:目標和 這道題我們先用回溯的思想來做。首先我們設正數和為S,數組和為N,目標值為T,那么S-(N-S)T化簡之后可以得S(TN)/2即選擇的正數個數為偶數,而且NT也為偶數,那么第一個判斷條件我們就有了&…

【Linux網絡與網絡編程】01.初識網絡

一、計算機網絡的發展歷史 計算機是人的工具,人要協同工作,注定了網絡的產生是必然的。 二、協議 計算機之間的傳輸媒介是光信號和電信號,通過 "頻率" 和 "強弱" 來表示 0 和 1 這樣的信息,要想傳遞各種不同…

使用 Python 進行鏈上數據監控:讓區塊鏈數據觸手可及

使用 Python 進行鏈上數據監控:讓區塊鏈數據觸手可及 區塊鏈技術正以前所未有的速度改變著各行各業,特別是在金融、供應鏈、物聯網和智能合約等領域的應用,已經成為了一種新常態。然而,隨著區塊鏈網絡的快速擴展和去中心化特性的不斷強化,數據的可視化與監控變得愈發重要…

【SMBIOS數據塊類型列表】

SMBIOS數據塊類型列表 SMBIOS數據塊類型列表**SMBIOS 數據塊類型列表****如何查看實際的 SMBIOS 數據塊?****總結** SMBIOS數據塊類型列表 在 SMBIOS(System Management BIOS)中,Type 是用來標識不同類型的數據塊的。每種類型對應…

【測試】每日3道面試題 3/30

每日更新,建議關注收藏點贊。 白盒測試邏輯覆蓋標準?哪種覆蓋標準覆蓋率最高? 5種。語句覆蓋、分支/判定覆蓋、條件覆蓋、條件組合覆蓋【覆蓋率最高,所有可能條件組合都驗證】、路徑覆蓋【理論上最高,但實際很難實現】…

NFS掛載異常排查記錄

互相PING服務器看是否通;在ubuntu下看下服務器是否正常運行。導出目錄是否導出了。最后發現在掛載目錄的地方目錄路徑和后面沒有加空格。

1--當「窮舉」成為藝術:CTF暴力破解漏洞技術從入門到入刑指南(知識點講解版)

當「窮舉」成為藝術:CTF暴力破解漏洞技術從入門到入刑指南 引言:論暴力破解的哲學意義 “世界上本沒有漏洞,密碼設得簡單了,便成了漏洞。” —— 魯迅(并沒有說過) 想象你是個不會撬鎖的小偷,面…