【Unity每日一記】Physics.Raycast 相關_Unity中的“X光射線”

在這里插入圖片描述


👨?💻個人主頁:@元宇宙-秩沅

👨?💻 hallo 歡迎 點贊👍 收藏? 留言📝 加關注?!

👨?💻 本文由 秩沅 原創

👨?💻 收錄于專欄unity每日一記

?🅰?推薦文章?


?【軟件設計師高頻考點暴擊】

?【Unityc#專題篇】之c#系統化大禮包】

?【unity數據持久化】數據管理類_PlayerPrfs

?【unity本站最全系列】unity常用API大全一篇文章足以
在這里插入圖片描述


??


文章目錄

    • ?🅰?推薦文章?
    • ??
    • 🎶(==O==)Ray射線檢測
      • 射線聲明
      • Physics.Raycast<font color=red > 普通射線
      • RaycastHit <font color=red >物體信息類
      • Physics.RaycastAll <font color=red > 得到多個物體信息
      • Physics.RaycastNonAlloc <font color=red >返回的碰撞的數量
    • ?🅰?系統路線學習點擊跳轉?




🎶(ORay射線檢測


  • 特點
    只需要判斷一條線和物體的碰撞情況
    可以在指定點發射一個指定方向的射線
    判斷該射線與哪些碰撞器相交,得到對應對象
    瞬時

  • 應用場景
    1.鼠標選擇場景上一物體
    2.FPS射擊游戲(無彈道-不產生實際的子彈對象進行移動)等

射線聲明


API

  • Ray X = new Ray(Vector3.right, Vector3.forward);
參數一參數二
起點方向
X.originX.direction
  • Ray XX = Camera.main.ScreenPointToRay(Input.mousePosition);
    屏幕視口坐標轉成射線——鼠標點擊的地方變成射線

Physics.Raycast 普通射線


  • Physics.Raycast 無法檢測碰到了誰,只會檢測碰到了沒有

最多有16個重載

Physics.Raycast常用參數作用
參數射線
參數檢測的最大距離 超出這個距離不檢測
參數檢測指定層級(不填檢測所有層)
參數是否忽略觸發器 UseGlobal-使用全局設置 Collide-檢測觸發器 Ignore-忽略觸發器 不填使用UseGlobal
返回bool 當碰撞到對象時 返回 true 沒有 返回false
//第一種寫法
Physics.Raycast(XX, 1000, 
1 << LayerMask.NameToLayer("層級名字"), 
QueryTriggerInteraction.UseGlobal   )//第二種寫法
Physics.Raycast(Vector3.right, Vector3.forward,  
1 << LayerMask.NameToLayer("層級名字"), 
QueryTriggerInteraction.UseGlobal   )

RaycastHit 物體信息類

  • RaycastHit 物體信息類——得到相交的單個物體物理信息
    在這里插入圖片描述
RaycastHit 在Physics.Raycast的應用作用
參數射線
參數out RaycastHit 為什么是out ?RaycastHit是結構體 是值類型 out加上去就變成了引用類型,而RaycastHit沒有復制所以不用ref
參數檢測的最大距離 超出這個距離不檢測
參數檢測指定層級(不填檢測所有層)
參數是否忽略觸發器 UseGlobal-使用全局設置 Collide-檢測觸發器 Ignore-忽略觸發器 不填使用UseGlobal
返回bool 當碰撞到對象時 返回 true 沒有 返回false
//寫法一RaycastHit YY;   if( Physics.Raycast(XX, out YY, 1000, 1<<LayerMask.NameToLayer("層級名字"), QueryTriggerInteraction.UseGlobal) )//寫法二
if( Physics.Raycast(Vector3.right, Vector3.forward, out YY, 1000,1<<LayerMask.NameToLayer("層級名字"), QueryTriggerInteraction.UseGlobal) )
  • 碰撞到物體的名字 YY.collider.gameObject.name;
  • 碰撞到的點 YY.point
  • 法線信息 YY.normal
  • 碰撞到對象的位置 YY.transform.position
  • 碰撞到對象 離自己的距離 YY.distance等等

Physics.RaycastAll 得到多個物體信息


  • RaycastHit[] XX= Physics.RaycastAll——得到相交的多個物體物理信息

在這里插入圖片描述
特點: 先碰到的在數組的后面


Physics.RaycastNonAlloc 返回的碰撞的數量


  • Physics.RaycastNonAlloc——返回的碰撞的數量 通過out得到數據
  if((r3, XX, 1000, 1 << LayerMask.NameToLayer("Monster"), QueryTriggerInteraction.UseGlobal) > 0 ){}

?🅰?系統路線學習點擊跳轉?


?【Unityc#專題篇】之c#進階篇】

?【Unityc#專題篇】之c#核心篇】

?【Unityc#專題篇】之c#基礎篇】

?【Unity-c#專題篇】之c#入門篇】

?【Unityc#專題篇】—進階章題單實踐練習

?【Unityc#專題篇】—基礎章題單實踐練習

?【Unityc#專題篇】—核心章題單實踐練習


你們的點贊👍 收藏? 留言📝 關注?是我持續創作,輸出優質內容的最大動力!


在這里插入圖片描述


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

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

相關文章

05_bitmaphyperloglogGEO

Bitmap&hyperloglog&GEO 面試問 記錄對集合中的數據進行統計在移動應用中&#xff0c;需要統計每天的新增用戶數和第2天的留存用戶數&#xff1b;在電商網站的商品評論中&#xff0c;需要統計評論列表中的最新評論&#xff1a;在簽到打卡中&#xff0c;需要統計一個月內…

Python “貪吃蛇”游戲,在不斷改進中學習pygame編程

目錄 前言 改進過程一 增加提示信息 原版幫助摘要 pygame.draw pygame.font class Rect class Surface 改進過程二 增加顯示得分 改進過程三 增加背景景樂 增加提示音效 音樂切換 靜音切換 mixer.music.play 注意事項 原版幫助摘要 pygame.mixer pygame.mix…

kvm和vmware有什么區別?如何選擇?

一、kvm和vmware的區別 VMware vSphere 平臺 VMware 可以提供 ESXi 虛擬機監控程序和 vSphere 虛擬化平臺。VMware ESXi 是一個能夠直接安裝到物理服務器上的裸機虛擬機監控程序&#xff0c;可以幫你整合硬件。你可以用 VMware 的虛擬化技術來創建和部署虛擬機&#xff08;VM…

HTML詳解連載(7)

HTML詳解連載&#xff08;7&#xff09; 專欄鏈接 [link](http://t.csdn.cn/xF0H3)下面進行專欄介紹 開始嘍結構偽類選擇器作用 :nth-child&#xff08;公式&#xff09;作用舉例 偽元素選擇器作用注意&#xff1a; PxCoook作用盒子模型-重要組成部分 盒子模型-邊框線屬性名屬性…

excel中定位條件,excel中有哪些數據類型、excel常見錯誤值、查找與替換

一、如何定位條件 操作步驟&#xff1a;開始 - 查找和選擇 - 定位條件&#xff08;ctrl G 或 F5&#xff09; 注&#xff1a;如果F5不可用&#xff0c;可能是這個快捷鍵被占用了 案例&#xff1a;使用定位條件選擇取余中空單元格&#xff0c;填入100&#xff0c;按組合鍵ct…

【LeetCode75】第三十三題 二叉樹的最大深度

目錄 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代碼&#xff1a; 題目&#xff1a; 示例&#xff1a; 分析&#xff1a; 從這一題開始&#xff0c;LeetCode75進入到了二叉樹章節。 這邊建議不熟悉二叉樹的小伙伴可以先去做做力扣的前序遍歷&#xff0c;中序遍…

使用git rebase 之后的如何恢復到原始狀態

我們常常喜歡使用git rebase去切換分支提交代碼,操作流程就是: 先切換分支:比如當前是master 我們修改了一堆代碼產生一個commit id :5555555567777 那么我們常常比較懶就直接切換了:git checkout dev 然后呢?使用命令git rebase 5555555567777,想把這筆修改提交到d…

iPhone上的個人熱點丟失了怎么辦?如何修復iPhone上不見的個人熱點?

個人熱點功能可將我們的iPhone手機轉變為 Wi-Fi 熱點&#xff0c;有了Wi-Fi 熱點后就可以與附近的其他設備共享其互聯網連接。 一般情況下&#xff0c;個人熱點打開就可以使用&#xff0c;但也有部分用戶在升級系統或越獄后發現 iPhone 的個人熱點消失了。 iPhone上的個人熱點…

antd5源碼調試環境搭建(window系統)

將antd源碼克隆至本地 $ git clone gitgithub.com:ant-design/ant-design.git $ cd ant-design $ npm install $ npm start前提安裝python3、安裝node版本18版本 不然后續安裝依賴會報python3相關的錯誤。 項目需要使用git 初始化 不然會報husky相關的錯誤 git init重新安…

【論文解讀】Hybrid-SORT: Weak Cues Matter for Online Multi-Object Tracking

因為Hybrid-SORT的baseline是基于OCSORT進行改進的&#xff0c;在這之前建議先了解byteTrack和【】的相關知識 1.介紹 1.1 基本框架 多目標跟蹤(MOT)將問題分為兩個子任務。第一個任務是檢測每個幀中的對象。第二個任務是將它們在不同的框架中聯系起來。關聯任務主要通過顯式…

RabbitMq-發布確認高級(避坑指南版)

在初學rabbitMq的時候&#xff0c;伙伴們肯定已經接觸到了“發布確認”的概念&#xff0c;但是到了后期學習中&#xff0c;會接觸到“springboot”中使用“發布確認”高級的概念。后者主要是解決什么問題呢&#xff1f;或者是什么樣的場景引出這樣的概念呢&#xff1f; 在生產環…

day45 ● 70. 爬樓梯 (進階)● 322. 零錢兌換 ● 279.完全平方數

70. 爬樓梯 class Solution {public int climbStairs(int n) {if(n <2) return n;int[] dp new int [n];dp[0] 1;dp[1] 2;for(int i 2; i< n;i){dp[i] dp[i-1] dp[i-2];}return dp[n-1];} } 322. 零錢兌換 class Solution {public int coinChange(int[] coins, in…

為什么kafka 需要 subscribe 的 group.id?我們是否需要使用 commitSync 手動提交偏移量?

目錄 一、為什么需要帶有 subscribe 的 group.id二、我們需要使用commitSync手動提交偏移量嗎&#xff1f;三、如果我想手動提交偏移量&#xff0c;該怎么做&#xff1f; 一、為什么需要帶有 subscribe 的 group.id 消費概念&#xff1a; Kafka 使用消費者組的概念來實現主題的…

vscode | linux | c++ intelliense 被棄用解決方案

每日一句&#xff0c;vscode用的爽是爽&#xff0c;主要是可配置太強了。如果也很會研究&#xff0c;可以直接去咸魚接單了 廢話少說&#xff0c;直接整。 用著用著說是c intelliense被棄用&#xff0c;很多輔助功能無法使用&#xff0c;像查看定義、查看引用、函數跳轉、智能提…

基于Rust的QuickLZ壓縮算法的詳細實現與分析

1. 引言 QuickLZ是一種被廣泛應用的高效壓縮算法。在許多應用中&#xff0c;快速的數據壓縮和解壓縮是非常關鍵的&#xff0c;特別是在網絡傳輸和存儲空間有限的場景中。為了滿足現代軟件開發的需求&#xff0c;我們將使用Rust語言來實現這一算法。Rust是一種專為系統級編程而…

Nodejs沙箱逃逸--總結

一、沙箱逃逸概念 JavaScript和Nodejs之間有什么區別&#xff1a;JavaScript用在瀏覽器前端&#xff0c;后來將Chrome中的v8引擎單獨拿出來為JavaScript單獨開發了一個運行環境&#xff0c;因此JavaScript也可以作為一門后端語言&#xff0c;寫在后端&#xff08;服務端&#…

七夕特輯——3D愛心(可監聽鼠標移動)

前言 「作者主頁」&#xff1a;雪碧有白泡泡 「個人網站」&#xff1a;雪碧的個人網站 「推薦專欄」&#xff1a; ★java一站式服務 ★ ★ React從入門到精通★ ★前端炫酷代碼分享 ★ ★ 從0到英雄&#xff0c;vue成神之路★ ★ uniapp-從構建到提升★ ★ 從0到英雄&#xff…

【005】ts學習筆記【函數擴展】

函數擴展 參數類型 //注意&#xff0c;參數不能多傳&#xff0c;也不能少傳 必須按照約定的類型來 const fn (name: string , age : number ) : string > {return name age }let desc fn( "張三", 18) console.log(desc)可選參數與默認值 //可選的參數 和 默…

深入理解Flink Mailbox線程模型

文章目錄 整體設計processMail1.Checkpoint Tigger2.ProcessingTime Timer Trigger processInput兼容SourceStreamTask 整體設計 Mailbox線程模型通過引入阻塞隊列配合一個Mailbox線程的方式&#xff0c;可以輕松修改StreamTask內部狀態的修改。Checkpoint、ProcessingTime Ti…

@Repeatable的作用以及具體如何使用

文章目錄 1. 前言2. 先說結論3. 案例演示 1. 前言 最近無意看到某些注解上有Repeatable&#xff0c;出于比較好奇&#xff0c;因此稍微研究并寫下此文章。 2. 先說結論 Repeatable的作用&#xff1a;使被他注釋的注解可以在同一個地方重復使用。 具體使用如下&#xff1a; T…