Unity 槍械紅點瞄準器計算

今天突然別人問我紅點瞄準器在鏡子上如何計算,之前的吃雞項目做過不記得,今天寫個小用例整理下。

主體思想記得是目標位置到眼睛穿過紅點瞄準器獲取當前點的位置就可以。應該是這樣吧,:)

武器測試結構

首先整個結構:
槍上Cube是握把,瞄準器就是鏡子,紅點,遠處100米放一個目標點便于觀察紅點位置。
很多人說瞄準走槍管,不要這樣想,綠色的瞄準線平行于槍管就可以了。
在這里插入圖片描述

實現代碼

先上代碼:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;public class Testhongdian : MonoBehaviour
{public Camera camerMain;public Transform jingzi;public Transform hongdian;public float dis = 100f;// Start is called before the first frame updatevoid Start(){camerMain = Camera.main;}// Update is called once per framevoid Update(){//模擬槍口方向有目標點Vector3 targetPoint = jingzi.transform.position + jingzi.transform.forward * dis;//目標點到相機的dir , 因為槍位置可能變化, 所以要計算目標到眼睛Vector3 dir = (camerMain.transform.position - targetPoint).normalized; float denominator = Vector3.Dot(dir, jingzi.transform.forward);float numerator = Vector3.Dot(jingzi.transform.position - targetPoint, jingzi.transform.forward);float t = numerator / denominator;Debug.Log(denominator.ToString("F5") + "," + numerator.ToString("F5") + "," + t.ToString("F5"));//紅點坐標Vector3 newat = targetPoint + dir * t;Debug.DrawLine(targetPoint, newat , Color.green);hongdian.transform.position = newat;// at + jingzi.transform.position;}
}

首先計算目標點位置,因為武器標準位置就是目標,所以是鏡子的forward方向就是目標。
計算一個向量,然后用Dot計算夾角的比值,就知道偏移,dir * t就是在鏡子上的偏移。
最后把紅點的位置給上,當然自己要處理出去了怎么辦。

實現效果

附上效果GIF:
請添加圖片描述

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

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

相關文章

題解 洛谷P13778 「o.OI R2」=+#-

文章目錄題解代碼居然沒有題解?我來寫一下我的抽象做法。 題解 手玩一下,隨便畫個他信心的折線圖,如下: 可以發現,如果我們知道終止節點,那么我們就可以知道中間有多少個上升長度。(因為它只能…

RTSP流端口占用詳解:TCP模式與UDP模式的對比

在音視頻傳輸協議中,RTSP(Real-Time Streaming Protocol,實時流傳輸協議)被廣泛用于點播、直播、監控等場景。開發者在實際部署或調試時,常常會遇到一個問題:一路 RTSP 流到底占用多少個端口? 這…

websocket的key和accept分別是多少個字節

WebSocket的Sec-WebSocket-Key是24字節(192位)的Base64編碼字符串,解碼后為16字節(128位)的原始隨機數據;Sec-WebSocket-Accept是28字節(224位)的Base64編碼字符串,解碼后…

單片機開發----一個簡單的Boot

文章目錄一、設計思路**整體框架設計****各文件/模塊功能解析**1. main.c(主程序入口,核心控制)2. 隱含的核心模塊(框架中未展示但必備)**設計亮點**二、代碼bootloader.hbootloader.cflash.cmain.c一、設計思路 整體…

Day2p2 夏暮客的Python之路

day2p2 The Hard Way to learn Python 文章目錄day2p2 The Hard Way to learn Python前言一、提問和提示1.1 關于raw_input()1.2 關于input()二、參數、解包、變量2.1 解讀參數2.2 解讀解包2.3 解讀變量2.4 實例2.5 模塊和功能2.6 練習前言 author:SummerEnd date…

【C++設計模式】第二篇:策略模式(Strategy)--從基本介紹,內部原理、應用場景、使用方法,常見問題和解決方案進行深度解析

C設計模式系列文章目錄 【第一篇】C單例模式–懶漢與餓漢以及線程安全 【C設計模式】第二篇:策略模式(Strategy)--從基本介紹,內部原理、應用場景、使用方法,常見問題和解決方案進行深度解析一、策略模式的基本介紹1.…

四十歲編程:熱愛、沉淀與行業的真相-優雅草卓伊凡

四十歲編程:熱愛、沉淀與行業的真相-優雅草卓伊凡今日卓伊凡收到一個問題:「如何看待40歲還在擼代碼的程序員?」這讓我不禁思考:從何時起,年齡成了程序員職業中的敏感詞?在互聯網的某些角落,彌漫…

pycharm解釋器使用anaconda建立的虛擬環境里面的python,無需系統里面安裝python。

Anaconda建立的虛擬環境可以在虛擬環境里設置任何的python版本,pycharm解釋器使用anaconda建立的虛擬環境里面的python,比如anaconda建立的虛擬環境1、虛擬環境2,pycharm解釋器使用anaconda建立虛擬環境1也可以使用虛擬環境2,根本…

機器學習:后篇

目錄 一、KNN算法-分類 樣本距離 KNN算法原理 缺點 API 二、模型選擇與調優 交叉驗證 保留交叉驗證(HoldOut) k-折交叉驗證(K-fold) 分層k-折交叉驗證(Stratified k-fold) 其他交叉驗證 三、樸素貝葉斯-分類 理論介紹 拉普拉斯平滑系數 API 四、決策樹-分類 理論…

C++17無鎖編程實戰

在多線程編程里,“鎖” 這東西就像把雙刃劍 —— 用好了能保數據安全,用不好就麻煩了:大粒度的鎖把并發度壓得死死的,稍不注意加錯鎖還可能搞出死鎖,程序直接 “僵住”。 但如果能擺脫鎖,搞出支持安全并發…

SVT-AV1 svt_aom_motion_estimation_kernel 函數分析

void *svt_aom_motion_estimation_kernel(void *input_ptr) // 運動估計內核主函數,接收線程輸入參數{// 從輸入參數中獲取線程上下文指針EbThreadContext * thread_ctx (EbThreadContext *)input_ptr;// 從線程上下文中獲取運動估計上下文指針MotionEstimationCon…

關于NET Core jwt Bearer Token 驗證的大坑,浪費3個小時,給各位兄弟搭個橋。

net core 使用jwt Bearer Token 認證獲取接口訪問權限,前期一陣操作沒任何問題,等認證接口寫的好了,通過PostMan測試的時候,總是報一個 IDX14102: Unable to decode the header eyJhbGciOiJIUzI1NiIsInR5cCI6 ,錯誤&a…

系統架構設計師備考第14天——業務處理系統(TPS)

一、TPS的核心概念與定位 1. 定義與演進 定義:TPS(Transaction Processing System)又稱電子數據處理系統(EDPS),是處理企業日常事務的信息系統,如財務、庫存、銷售等局部業務管理。歷史地位&…

目標檢測系列-Yolov5下載及運行

由于項目需要,最近一直在看目標檢測相關的資料,不過紙上得來終覺淺,絕知此事要躬行啊。從今日起,將學習的過程記錄一下,作為以后用來復習的材料吧。 我想最快的學習便是直接動手做項目,因此今天就將yolov5模…

Linux內核進程管理子系統有什么第四十二回 —— 進程主結構詳解(38)

接前一篇文章:Linux內核進程管理子系統有什么第四十一回 —— 進程主結構詳解(37) 本文內容參考: Linux內核進程管理專題報告_linux rseq-CSDN博客 《趣談Linux操作系統 核心原理篇:第三部分 進程管理》—— 劉超 《…

基于飛算JavaAI的學生成績綜合統計分析系統

第一章:項目概述與背景 1.1 項目背景與意義 在教育信息化飛速發展的今天,學生成績管理已成為學校教學管理的核心環節。傳統的學生成績管理多依賴于手工操作或基礎的信息管理系統,存在數據處理效率低、統計分析功能薄弱、數據可視化缺失等問題…

C++程序員必懂:std::bad_function_call異常的真相與預防秘訣

std::bad_function_call 是 C++ 標準庫在 <functional> 頭文件中定義的一個異常類型。當程序試圖調用一個未持有任何可調用目標(即處于“空狀態”)的 std::function 對象時,此異常會被拋出。本文將深入探討該異常的根本原因、詳細的觸發場景,并提供一套完整的預防與處…

Html重繪和重排

在網頁渲染過程中&#xff0c;重繪&#xff08;repaint&#xff09;和重排&#xff08;reflow&#xff09;是兩個重要的概念。理解它們的區別和優化方法對于提升網頁性能至關重要。重排&#xff08;Reflow&#xff09;重排是指當頁面元素的位置、尺寸等幾何屬性發生變化時&…

Redis 客戶端與服務器:銀行的 “客戶服務系統” 全流程

目錄 一、Redis 客戶端&#xff1a;銀行的 “客戶檔案” 二、客戶端關閉&#xff1a;銀行的 “終止服務規則” 三、命令處理流程&#xff1a;柜員辦理業務的 “標準步驟” 1. 接收申請單&#xff08;讀取命令請求&#xff09; 2. 確認業務類型&#xff08;查找命令&#x…

HTML圖片標簽及路徑詳解

圖片是網頁內容的重要組成部分&#xff0c;能夠使頁面更加生動直觀。在HTML中&#xff0c;使用<img>標簽插入圖片&#xff0c;而正確設置圖片路徑則是確保圖片能夠正常顯示的關鍵。一、圖片標簽&#xff08;<img>&#xff09;1. 圖片標簽的基本語法<img>標簽…