真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

unity中射線碰撞檢測總結(jié)-創(chuàng)新互聯(lián)

這陣子通過看視頻,看書對unity中射線碰撞檢測,有了一些了解,這里我把它總結(jié)一下寫下來,希望能幫助到你們,也希望通過各位大神來指正不足之處;

創(chuàng)新互聯(lián)公司長期為近1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鎮(zhèn)巴企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,鎮(zhèn)巴網(wǎng)站改版等技術服務。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

     射線碰撞檢測,就是由某一物體發(fā)射出一道射線,射線碰撞到物體之后,可以得到該物體的相關信息,然后就可以對該物體進行一些操作的過程了。PS:個人見解;

射線的發(fā)射分為可見和不可見,可見的情況就是在游戲當中你可以看到射線,而不可見就是游戲運行時,你只可以在Scene試圖下觀察到它,而這到射線又是存在的;

而其實兩者區(qū)別不大,關鍵是看你怎么用它了;

下面先看看不可見的情況吧,還是看代碼;

Ray ray=new Ray(transform.position,transform.forward*100);          //定義一個射線對象,包含射線發(fā)射的位置transform.position,發(fā)射距離transform.forward*100;
Debug.DrawLine(transform.position,transform.position+transform.forward*100,Color.red);  //這個就是繪制出的射線了,包含發(fā)射位置,發(fā)射距離和射線的顏色;
RaycastHit hitInfo;                                 //定義一個RaycastHit變量用來保存被撞物體的信息;
if(Physics.Raycast(ray,out hitInfo,100))         //如果碰撞到了物體,hitInfo里面就包含該物體的相關信息;
{
    //hitInfo.point:碰撞點的位置;
    //hitInfo.normal:與碰撞點所在平面垂直的向量;
    //hitInfo.collider.gameobject:可以得到該物體上的所有信息了;
}

 另一種情況:需要在發(fā)射射線的物體上添加LineRenderer組件;

LineRenderer render;
void start()
{
    render=transform.GetComponent();
    render.SetWidth(0.01f,0.01f);     //SetWidth(startWidth,endWidth);
    render.SetColor(Color.red,Color.red);   //SetColor(startColor,endColor);
    render.SetVertexCount(2);              //設置頂點數(shù)
}
void Update()
{
        Ray ray=new Ray(transform.position,transform.forward*100);          //定義一個射線對象,包含射線發(fā)射的位置transform.position,
                                                                            // 發(fā)射距離transform.forward*100;                                                              
        RaycastHit hitInfo;                                 //定義一個RaycastHit變量用來保存被撞物體的信息;
        if(Physics.Raycast(ray,out hitInfo,100))         //如果碰撞到了物體,hitInfo里面就包含該物體的相關信息;
        {
            //hitInfo.point:碰撞點的位置;
            //hitInfo.normal:與碰撞點所在平面垂直的向量;
            //hitInfo.collider.gameobject:可以得到該物體上的所有信息了;
            if(Input.GetMouseButtonDown(0))
            {
                render.SetPosition(0,transform.position);            //射線起始位置;
                render.SetPosition(1,transform.position+transform.forward);    //射線方向;
            }
            render.SetVertexCount(0);                 //消除射線;
        }    
}

   ok,簡單吧,代碼是我直接在這上面寫的,有什么錯誤,歡迎指正哦!共同努力,耶unity中射線碰撞檢測總結(jié)

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


當前文章:unity中射線碰撞檢測總結(jié)-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/ceocsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部