国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity中實現(xiàn)滑塊跟隨物體的算法解析

Unity制作滑塊跟隨物體教程:直線與平面跟隨效果實現(xiàn)方法

在Unity中制作一個能夠跟隨物體移動的滑塊,不僅可以增強游戲的互動性,還可以用于各種動態(tài)UI元素的制作。本文將詳細介紹如何實現(xiàn)滑塊在不同軌跡上的跟隨效果。

效果示意圖

制作一個能夠跟隨物體的滑塊

需求分析

我們希望滑塊能夠嚴格跟隨一個球體移動,同時自身被限制在特定的軌道上。滑塊不能離開軌道,且需要實時跟隨球體的位置。這可以通過數(shù)學算法來實現(xiàn),類似于在已知三個點A、B、C的坐標下,求解C點垂直于AB線段的坐標。

解決方案1

算法實現(xiàn)

直線上的跟隨

假設mAPoint是起始點,mBPoint是結束點,mCurrentPoint是當前移動的點,我們需要返回映射的點。首先,我們計算AB兩點的向量:

Vector3 vectorAB = mBPoint - mAPoint;

接下來,計算點積和向量的長度平方:

float dotProduct = Vector3.Dot(vectorAB, mCurrentPoint - mAPoint);
float lengthSquared = vectorAB.sqrMagnitude;

然后,限制點積的范圍,確保映射點在AB線段上:

dotProduct = Mathf.Clamp(dotProduct, 0f, lengthSquared);

最后,計算映射點的位置:

Vector3 PointA = mAPoint + vectorAB * dotProduct / lengthSquared;
Vector3 PointB = mCurrentPoint + (PointA - mCurrentPoint);
return PointB;

平面上的跟隨

假設mNormal是平面的法線方向,mTargetPoint是平面上的位置點,mCurrentPoint是當前移動的點。我們可以使用向量的投影來實現(xiàn)在平面上的跟隨效果:

Vector3 projection = mCurrentPoint - Vector3.Dot(mCurrentPoint - mTargetPoint, mNormal) * mNormal;

實現(xiàn)效果

通過以上算法,我們成功實現(xiàn)了滑塊在直線和平面上的跟隨效果!這使得在制作游戲中的軌道或者其他需要物體跟隨的情景中更加容易實現(xiàn)。

實現(xiàn)的最終效果示意圖

解決方案2

算法實現(xiàn):

直線軌道上的滑塊跟隨:

    首先確定起始點mAPoint和結束點mBPoint。

    計算AB兩點的向量:Vector3 vectorAB=mBPoint?mAPoint;Vector3 vectorAB=mBPoint?mAPoint;

    計算當前點mCurrentPoint與A點的相對向量,并與AB向量計算點積,以及AB向量的模的平方。

    通過點積與模的平方比值,限制mCurrentPoint在AB線段上的位置,防止超出軌道。

    最終映射計算出滑塊的新位置。

曲線軌道上的滑塊跟隨:

    類似于直線軌道,但需要考慮曲線的參數(shù)化表示,可能需要引入額外的數(shù)學工具,如貝塞爾曲線等。

面上的滑塊跟隨:

    需要一個法向量mNormal來確定滑塊在面上的移動方向。

    通過投影計算,確?;瑝K在目標點mTargetPoint的法線上移動

代碼示例

以下是Unity中實現(xiàn)直線軌道上滑塊跟隨的示例代碼:

Vector3 vectorAB = mBPoint - mAPoint;
float dotProduct = Vector3.Dot(vectorAB, mCurrentPoint - mAPoint);
float lengthSquared = vectorAB.sqrMagnitude;

if (dotProduct > lengthSquared) dotProduct = lengthSquared;
if (dotProduct < 0) dotProduct = 0;

Vector3 PointA = mAPoint + vectorAB * (dotProduct / lengthSquared);
Vector3 PointB = mCurrentPoint + (PointA - mCurrentPoint);
return PointB;

實現(xiàn)效果

通過上述算法,我們成功實現(xiàn)了滑塊在直線軌道上的跟隨效果。對于曲線和面上的跟隨,原理類似,但需要根據(jù)具體情況調整算法。文章來源地址http://www.zghlxwxcb.cn/article/771.html

到此這篇關于Unity中實現(xiàn)滑塊跟隨物體的算法解析的文章就介紹到這了,更多相關內容可以在右上角搜索或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/771.html

如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請聯(lián)系站長進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • unity UI 跟隨3D物體移動

    unity UI 跟隨3D物體移動

    ?

    2024年02月11日
    瀏覽(30)
  • Unity 物體的運動之跟隨鼠標

    Unity 物體的運動之跟隨鼠標

    ????????你想讓鼠標點擊哪里,你的運動的對象就運動到哪里嗎? Please follow me ! 首先,你要先添加一個Plane ,以及你的圍墻,你的移動的物體 ? 想要實現(xiàn)跟隨鼠標移動,我們先創(chuàng)建一個腳本 先簡單的分析一下代碼: 開始的時候應該先創(chuàng)建一個空物體,將該空物體拉進去腳

    2024年02月12日
    瀏覽(26)
  • 【Unity】攝像機跟隨鼠標移動以物體為中心旋轉 物體根據(jù)視線方向移動

    【Unity】攝像機跟隨鼠標移動以物體為中心旋轉 物體根據(jù)視線方向移動

    描述 實現(xiàn)攝像機根據(jù)鼠標移動跟隨物體旋轉,以攝像機前物體為中心,攝像機圍繞物體旋轉,并使攝像機時刻指向物體 實現(xiàn)效果 Unity 組件設置 Camera 組件設置 Body 組件設置 實現(xiàn)代碼 CameraRotateMove.cs 攝像機跟隨和旋轉 move_better.cs 物體根據(jù)按鍵移動

    2024年02月08日
    瀏覽(41)
  • unity中實現(xiàn)3D物體在UI前方

    在Unity中,如果你想要將3D物體顯示在UI的前方,可以通過Canvas和RawImage來實現(xiàn)。以下是一些步驟: 創(chuàng)建Canvas: 在場景中創(chuàng)建一個Canvas對象。你可以在Hierarchy視圖中右鍵點擊,選擇UI Canvas,或者在創(chuàng)建菜單中找到。Canvas是用來渲染UI元素的。 創(chuàng)建RawImage: 在Canvas中創(chuàng)建一個Ra

    2024年02月20日
    瀏覽(22)
  • 使用DoTween插件在Unity中實現(xiàn)物體或場景的振動效果

    在Unity中,我們可以使用DoTween插件來實現(xiàn)物體或場景的振動效果。DoTween是一個功能強大的插件,可以簡化動畫的創(chuàng)建和管理過程,并提供了豐富的插值和緩動函數(shù),使得振動效果的實現(xiàn)變得更加容易。 首先,我們需要確保已經安裝了DoTween插件,并將其導入到Unity項目中。接

    2024年04月17日
    瀏覽(95)
  • Unity——使用鉸鏈關節(jié)制作懸掛物體效果

    Unity——使用鉸鏈關節(jié)制作懸掛物體效果

    目的 在場景中創(chuàng)建一個懸掛的物體,是把多個模型懸掛在一起可以自由搖擺,類似鏈條的效果 效果圖 前言 什么是鉸鏈關節(jié)? 鉸鏈關節(jié) 將兩個剛體(Rigid body)組會在一起,從而將其約束為如同通過鉸鏈連接一樣進行移動。它十分適合門、鏈條、鐘擺等模擬效果。 步驟 打開

    2023年04月24日
    瀏覽(48)
  • 碰撞檢測算法——分離軸算法在Unity中實現(xiàn)(二)

    碰撞檢測算法——分離軸算法在Unity中實現(xiàn)(二)

    一、介紹 ? ? ? ?分離軸算法(簡稱SAT)通常用于檢查兩個簡單多邊形(凸邊形)之間或多邊形與圓之間的碰撞。本質上,如果您能夠繪制一條線來分隔兩個多邊形,則它們不會發(fā)生碰撞,如果找不到一條線來分割兩個多邊形,則它們發(fā)生碰撞。 如圖: ? ? ? ? ? 具體做法

    2024年02月04日
    瀏覽(23)
  • Threejs入門之三:讓物體跟隨鼠標動起來

    Threejs入門之三:讓物體跟隨鼠標動起來

    上一節(jié)我們創(chuàng)建了一個三維的立方體,將其放在了瀏覽器窗口中,但是目前來講它只是一個靜態(tài)的圖片,我們并不能通過鼠標控制其旋轉、縮放和移動,這一節(jié)我們來實現(xiàn)用鼠標控制物體的運動。 首先我們要了解一個概念,在三維場景中,我們要控制物體旋轉,實際上不是物

    2024年02月11日
    瀏覽(41)
  • Unity Meta Quest 一體機開發(fā)(十二):【手勢追蹤】Poke 交互 - 用手指點擊由 3D 物體制作的 UI 按鈕

    Unity Meta Quest 一體機開發(fā)(十二):【手勢追蹤】Poke 交互 - 用手指點擊由 3D 物體制作的 UI 按鈕

    此教程相關的詳細教案,文檔,思維導圖和工程文件會放入 Spatial XR 社區(qū) 。這是一個高質量 XR 社區(qū),博主目前在內擔任 XR 開發(fā)的講師。此外,該社區(qū)提供教程答疑、及時交流、進階教程、外包、行業(yè)動態(tài)等服務。 社區(qū)鏈接: Spatial XR 高級社區(qū)(知識星球) Spatial XR 高級社區(qū)

    2024年02月04日
    瀏覽(33)
  • viple模擬器使用(四):unity模擬器中實現(xiàn)兩距離局部最優(yōu)迷宮算法

    viple模擬器使用(四):unity模擬器中實現(xiàn)兩距離局部最優(yōu)迷宮算法

    兩距離:指的是左側距離和右側距離 局部最優(yōu): 對當前狀態(tài)來說最好的選擇 ,至于整體能不能達到最優(yōu),是無法確定的。 從節(jié)點1到節(jié)點5,一共有3條路 第1條路線:1→2→4→5,對應的花銷是:2+3+4=9; 第2條路線:1→3→4→5,對應的花銷是:1+5+4=10; 第3條路線:1→3→5,對

    2024年02月05日
    瀏覽(38)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包