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

Unity判斷物體是否被某個相機(jī)可見

這篇具有很好參考價值的文章主要介紹了Unity判斷物體是否被某個相機(jī)可見。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

第一種方式:

將物體的世界坐標(biāo)轉(zhuǎn)換為視口坐標(biāo)(Viewport Coordinates),得到的坐標(biāo)值會在[0,1]的范圍內(nèi),表示物體在相機(jī)視口中的位置。如果物體的位置在這個范圍內(nèi),就說明它被相機(jī)看到了。

public bool ObjectVisible(Camera camera, GameObject obj)
    {
        //將物體的世界坐標(biāo)轉(zhuǎn)換為視口坐標(biāo)
        Vector3 viewportPosition = camera.WorldToViewportPoint(obj.transform.position);
        //如果視口坐標(biāo)在[0,1]的范圍內(nèi),表示可以被相機(jī)看到
        if (viewportPosition.x > 0 && viewportPosition.x < 1 && viewportPosition.y > 0 && viewportPosition.y < 1 && viewportPosition.z > 0)
        {
            return true;
        }       
          return false;        
    }

第二種方式:

判斷物體是否完全在相機(jī)的視錐體內(nèi),可以使用相機(jī)的GeometryUtility.TestPlanesAABB()方法,該方法可以檢測一個AABB包圍盒(即物體的邊界框)是否在視錐體內(nèi),返回一個bool值。如果返回值為true,則表示物體完全在視錐體內(nèi);如果返回值為false,則表示物體不在視錐體內(nèi)。

 public bool ObjectVisible(Camera camera, GameObject obj)
    {
        Bounds bounds = obj.GetComponent<Renderer>().bounds;
        //GeometryUtility.TestPlanesAABB()方法,該方法可以檢測一個AABB包圍盒(即物體的邊界框)是否在視錐體內(nèi),
        //返回一個bool值。如果返回值為true,則表示物體在視錐體內(nèi);如果返回值為false,則表示物體不在視錐體內(nèi)。
        return GeometryUtility.TestPlanesAABB(GeometryUtility.CalculateFrustumPlanes(camera), bounds);       
    }

在Update中調(diào)用該方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-752083.html

到了這里,關(guān)于Unity判斷物體是否被某個相機(jī)可見的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [Unity]將物體(gameObject)與預(yù)制體(Prefab)取消關(guān)聯(lián),解綁

    [Unity]將物體(gameObject)與預(yù)制體(Prefab)取消關(guān)聯(lián),解綁

    在如下Hierarchy窗口中右鍵點(diǎn)擊要解綁的物體 ?在右鍵菜單中選擇prefab-》Unpack即可將對象與預(yù)制體解除關(guān)聯(lián) ? ? ?

    2024年02月11日
    瀏覽(22)
  • 【Unity】API學(xué)習(xí) --> GameObject(物體)創(chuàng)建的三種方式

    GameObject 就是Unity中最關(guān)鍵的物體 1 通過構(gòu)造函數(shù)進(jìn)行創(chuàng)建 可以直接new一個GameObject 在start函數(shù)里創(chuàng)建,游戲物體可以在任何地方創(chuàng)建,測試創(chuàng)建一次 默認(rèn)只有Transform 可以在新建是進(jìn)行傳參,創(chuàng)建指定物體 2 Instance Instantiate是靜態(tài)方法,可以通過 GameObject.Instantiate(); 調(diào)用,需要

    2024年02月06日
    瀏覽(43)
  • unity當(dāng)前物體朝向某個物體的方法

    匯總一下以上三種朝向某個物體的方法: 使用Transform.LookAt方法:這個方法可以將當(dāng)前物體的正面指向目標(biāo)物體。使用方法如下: 使用Quaternion.LookRotation方法:這個方法可以根據(jù)兩個向量的方向計算出物體的旋轉(zhuǎn)。使用方法如下: 使用Vector3.RotateTowards方法:這個方法可以將當(dāng)

    2024年02月09日
    瀏覽(24)
  • Unity中如何讓物體和相機(jī)一起動

    Unity中開發(fā)VR或者AR應(yīng)用中我們想要物體和相機(jī)跟隨著進(jìn)行移動,我們需要先獲得相機(jī)的參數(shù),其次我們需要修改物體的參數(shù)使得其跟隨移動?? 使用this指針可以顯示的改變本腳本下物體的參數(shù),別忘了將該腳本掛載到物體下,就可以自動執(zhí)行了

    2024年02月16日
    瀏覽(21)
  • 筆記:Unity多相機(jī)場景下,物體顯示常用設(shè)置

    1、主相機(jī):MainCamera; 2、子相機(jī):ClippingCamera、FieldViewCamera、UICamera: 注:為了減少干擾 每個子相機(jī)僅顯示特定物體,不和主相機(jī)同時渲染; 每個物體也僅被唯一的相機(jī)渲染; 3、把子相機(jī)顯示內(nèi)容按不同先后順序渲染到主相機(jī)里方法: (1)將子相機(jī)添加進(jìn)MainCamera的Stack模

    2023年04月08日
    瀏覽(29)
  • Unity3D相機(jī)圍繞物體自由旋轉(zhuǎn)

    Unity3D相機(jī)圍繞物體自由旋轉(zhuǎn)

    寫了一個相機(jī)圍繞物體360°自由旋轉(zhuǎn)的腳本,比較實(shí)用,分享出來給大家使用,配置如下: Hierarchy界面 ?LookPovit:為物體Auto Aircraft的中心空對象; AroundPovit:用于相機(jī)的空對象,作為父類,主要作用是為了保持與被觀察物體的位置一致,可防止Auto Aircraft出現(xiàn)抖動而影響相機(jī)

    2024年02月11日
    瀏覽(100)
  • selenium元素操作--判斷元素是否可用、可選中、是否可見

    selenium元素操作--判斷元素是否可用、可選中、是否可見

    Ctrl + 左鍵可以調(diào)出某方法的使用 is_selected() 方法 返回一個布爾值,若可見則返回: True 。若不可見則返回: False 。 is_displayed() 方法返回一個布爾值,若可見則返回: True 。若不可見則返回: False 。 is_enabled() 方法返回一個布爾值,若可點(diǎn)擊返回: True 。若不可點(diǎn)擊則返回:

    2024年04月13日
    瀏覽(19)
  • Unity實(shí)戰(zhàn)(10):如何將某個相機(jī)的畫面做成貼圖(RenderTexture)

    Unity實(shí)戰(zhàn)(10):如何將某個相機(jī)的畫面做成貼圖(RenderTexture)

    目錄 前言 一、創(chuàng)建物體、材質(zhì)與相機(jī) 二、將RenderTexture賦給材質(zhì) 2.1 修改rt1的一些屬性 2.2 將rtMat1材質(zhì)的shader改為Unlit/Texture,并將rt1賦給這個材質(zhì) 三、效果呈現(xiàn) 本文記錄如何將某個相機(jī)的畫面做成貼圖,即游戲某些場景中小地圖做法或虛擬監(jiān)控效果,使用到的是RenderTexture

    2024年02月09日
    瀏覽(17)
  • Unity單個物體綁定多個相機(jī)在軌道上移動,錄制不同角度視頻

    Unity單個物體綁定多個相機(jī)在軌道上移動,錄制不同角度視頻

    打開包管理器 下載cinemachine插件 使用dolly track 創(chuàng)建軌道 右側(cè)可以刪減關(guān)鍵點(diǎn),注意調(diào)整y坐標(biāo) 把前面的軌道拖到path中,注意這里的 speed要設(shè)定不為0才會動 根據(jù)需求設(shè)定,F(xiàn)ollow這個設(shè)為cart才跟著走(Dolly Enable勾上),Look At設(shè)定為Cart才會讓相機(jī)跟著軌跡的變化視角轉(zhuǎn)換(設(shè)定

    2024年04月15日
    瀏覽(22)
  • unity 判斷當(dāng)前設(shè)備是否是模擬器(安卓)

    unity 判斷當(dāng)前設(shè)備是否是模擬器(安卓)

    最近有個需求,需要判斷當(dāng)前設(shè)備是否是模擬器,網(wǎng)上查了一下,發(fā)現(xiàn)基本上都是使用特征字符串進(jìn)行檢索,類似這種: 發(fā)現(xiàn)都是不行的,因?yàn)楝F(xiàn)在的模擬器都會偽裝== 還有一種方法是使用 AndroidJavaClass 來調(diào)用安卓相關(guān)的方法:參考林新發(fā)大佬 例如這種: ps:由于沒用安卓

    2024年02月14日
    瀏覽(102)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包