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

Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體

這篇具有很好參考價(jià)值的文章主要介紹了Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.創(chuàng)建一個(gè)準(zhǔn)星放在屏幕中間

外部找個(gè)PNG透明圖,拖到Unity文件夾,右上角改成精靈sprite2d

Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體,Unity零基礎(chǔ)課程,unity,游戲引擎

2.添加到UI畫布

Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體,Unity零基礎(chǔ)課程,unity,游戲引擎

Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體,Unity零基礎(chǔ)課程,unity,游戲引擎?

3.寫腳本

首先,我們需要引入一些 "工具",就像我們?cè)谕嬗螒驎r(shí)要先下載游戲客戶端一樣。這里的 "工具" 就是一些命名空間,讓我們可以方便地使用 System 和 UnityEngine 類。 ??

接下來(lái),我們創(chuàng)建了一個(gè)名為 RayToScreenMid 的 "小玩具"。這個(gè)小玩具有一個(gè)重要的 "成員"(在程序中,我們稱之為變量),那就是 MianCamera。MianCamera 就是我們的 "攝像頭",用來(lái)觀察游戲世界。我們?cè)谕婢叩?"啟動(dòng)" 階段(Start 方法)計(jì)算了一下屏幕的 "中心位置",并把結(jié)果存放在 ScreenMidPos 變量里。 ??

當(dāng)我們 "玩"(Update 方法)這個(gè)小玩具時(shí),如果鼠標(biāo)左鍵被按下,RayShot 方法就會(huì)被調(diào)用。RayShot 方法就像我們?cè)谕嬗螒驎r(shí)按下的 "射擊" 鍵,它會(huì)從 MianCamera(攝像頭)出發(fā),向屏幕中間發(fā)射一條 "射線"(Ray)。 ??

然后,我們使用 Physics.Raycast 方法來(lái)檢查這條射線是否與游戲中的其他物體 "相撞" 了。如果相撞,我們會(huì)檢查這個(gè)物體是不是 "地形" 或者 "角色",如果不是,我們就會(huì) "消滅"(Destroy)這個(gè)物體。 ??

此外,我們還會(huì)在游戲中畫出一條從 MianCamera(攝像頭)到屏幕中間位置的紅色射線。這樣,我們就可以清楚地看到這條射線,就像我們?cè)谕嬗螒驎r(shí)看到的 "血條" 一樣。 ??

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RayToScreenMid : MonoBehaviour
{
    // 從視角攝像機(jī)向屏幕中間發(fā)射射線

    Camera MianCamera;                // 這是一個(gè)攝像機(jī)對(duì)象
    Vector3 ScreenMidPos;             // 這是屏幕中央的點(diǎn)的坐標(biāo)

    private void Start()
    {
        ScreenMidPos = new Vector3(Screen.width / 2, Screen.height / 2, 0);  // 初始化屏幕中央的點(diǎn)的坐標(biāo)
    }
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RayShot();              // 如果鼠標(biāo)左鍵按下,則發(fā)射一條射線
        }
    }

    private void RayShot()
    {
        //從攝像機(jī)出發(fā)向屏幕中間發(fā)射射線!    
        Ray OneShotRay = Camera.main.ScreenPointToRay(ScreenMidPos);          // 以屏幕中央點(diǎn)為原點(diǎn),發(fā)射射線
        RaycastHit OnEnemy;
        if (Physics.Raycast(OneShotRay,out OnEnemy))                          // 如果射線碰到了物體
        {
            Debug.Log("射線發(fā)射成功");
            if (OnEnemy.transform.name!= "Terrain"&& OnEnemy.transform.name != "Role")  // 如果碰到的不是地形和角色
            {
                Destroy(OnEnemy.transform.gameObject);                        // 銷毀碰撞到的物體
                Debug.Log("銷毀對(duì)方");
                if (ScreenMidPos != null)
                {
                    Debug.DrawLine(Camera.main.transform.position, ScreenMidPos, Color.red, 10000f);    // 畫一條從攝像機(jī)出發(fā),到屏幕中央點(diǎn)的射線
                }
               
        }
    }
 
}//end class

這個(gè)腳本掛載到哪里都可以,為了符合面向?qū)ο?,?qǐng)掛在攝像機(jī)或者主角身上

這個(gè)腳本是從攝像機(jī)往電腦屏幕中間發(fā)射射線!前面的UI僅僅只是一個(gè)標(biāo)識(shí)!

Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體,Unity零基礎(chǔ)課程,unity,游戲引擎文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-714005.html

到了這里,關(guān)于Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • unity控制攝像機(jī)幾種視角實(shí)現(xiàn)方式

    unity控制攝像機(jī)幾種視角實(shí)現(xiàn)方式

    目錄 1、按下鼠標(biāo)右鍵可以實(shí)現(xiàn)攝像機(jī)上下左右旋轉(zhuǎn) 2、自由視角 3、攝像頭跟隨視角 4、跟隨自由視角 5、第一人稱跟隨視角 python學(xué)習(xí)匯總連接: 1、按下鼠標(biāo)右鍵可以實(shí)現(xiàn)攝像機(jī)上下左右旋轉(zhuǎn) 這段代碼定義了一個(gè)名為CameraRotate的腳本,用于控制攝像機(jī)根據(jù)鼠標(biāo)右鍵(中鍵)

    2024年03月12日
    瀏覽(18)
  • Unity使用Cinemachine插件實(shí)現(xiàn)攝像機(jī)跟隨和震動(dòng)

    Unity使用Cinemachine插件實(shí)現(xiàn)攝像機(jī)跟隨和震動(dòng)

    ?一、實(shí)現(xiàn)跟隨 1、在PackageManager添加插件 2、創(chuàng)建Cinemachine的攝像機(jī),我的項(xiàng)目是2D項(xiàng)目所以創(chuàng)建2D攝像機(jī) 3、將Player拖拽到Follow和LookAt ?4、創(chuàng)建一個(gè)空物體,向它添加PolygonCollider2D,調(diào)整好可視范圍的大小以后在CinemachineVirtuaCamera的Extensions的AddExtensionzhong中選擇 把剛才創(chuàng)建的空

    2024年02月15日
    瀏覽(23)
  • unity3d 實(shí)現(xiàn)第三人稱移動(dòng)與攝像機(jī)調(diào)整

    unity3d 實(shí)現(xiàn)第三人稱移動(dòng)與攝像機(jī)調(diào)整

    首先展示效果 unity3d 關(guān)于人物移動(dòng),這里推薦使用Character Conrroller組件,優(yōu)點(diǎn)就是可以不用處理剛體,不受重力的影響,自帶物理碰撞檢測(cè)。 ?人物移動(dòng)代碼包括轉(zhuǎn)向 接下來(lái)就是攝影機(jī)的調(diào)整,這里使用unity自帶的插件cinemachine,非常的推薦,無(wú)需使用冗雜的代碼即可設(shè)計(jì)較好

    2024年02月11日
    瀏覽(31)
  • Unity【角色/攝像機(jī)移動(dòng)控制】【3.攝像機(jī)跟隨角色】

    本章代碼基于前兩章。 1. 我們新建CameraController腳本,將其掛載到Camera上 2. 在角色Player下新建一個(gè)空物體,命名為cameraTargetPoint,并將該物體掛載至CameraController腳本中【注意代碼中的這行:public Transform cameraTargetPoint;】,將該空物體放在人物頭部附近位置 3.將PlayerController腳本

    2024年02月22日
    瀏覽(35)
  • 【Unity 攝像機(jī)組件】Camera場(chǎng)景攝像機(jī)的認(rèn)識(shí)

    OK 同學(xué)們好,本節(jié)課我們開(kāi)始學(xué)習(xí)攝像機(jī)創(chuàng)建以及攝像機(jī)的屬性。 CH3.3 PPT02 攝像機(jī)相機(jī)是玩家用來(lái)觀看游戲場(chǎng)景世界的基本設(shè)備,當(dāng)游戲運(yùn)行的時(shí)候,游戲畫面就是攝像機(jī)看到的畫面。 PPT 3一個(gè)場(chǎng)景中可以有無(wú)數(shù)個(gè)攝像機(jī),最終游戲運(yùn)行的畫面可能是很多個(gè)攝像機(jī)拼湊而成。

    2024年02月02日
    瀏覽(38)
  • unity 3種辦法實(shí)現(xiàn)血條效果并實(shí)現(xiàn)3d世界血條一直看向攝像機(jī)

    unity 3種辦法實(shí)現(xiàn)血條效果并實(shí)現(xiàn)3d世界血條一直看向攝像機(jī)

    普通血條欄: 漸變色血條欄: 緩沖血條欄: 3D場(chǎng)景血條欄跟隨玩家移動(dòng): 在Canvas下創(chuàng)建一個(gè)空物體HP bar,在空物體下方創(chuàng)建3個(gè)Image,分別為血條框bar 黑色,最大HP maxHP 白色,和當(dāng)前HP currentHP 紅色。(PS:注意先后順序以調(diào)整顯示的圖層) 效果: 點(diǎn)擊HP bar,添加slider(滑塊)

    2024年02月11日
    瀏覽(100)
  • Unity 攝像機(jī)

    Unity 攝像機(jī)

    攝像機(jī)分為兩種? (1)透視攝像機(jī) (2) 正交攝像機(jī) ?一般3D游戲使用的透視多一點(diǎn),2D游戲使用正交多一點(diǎn)。 相機(jī)參數(shù) 清除標(biāo)記: (1)天空盒 (2)僅深度,類似于權(quán)重,優(yōu)先級(jí),深度大的覆蓋住深度小的視線 例如 主相機(jī)顯示的卻不是當(dāng)先視線,而是新相機(jī)的視線 ,主

    2023年04月21日
    瀏覽(29)
  • Unity攝像機(jī)跟隨

    將攝像機(jī)直接拖拽到被跟隨的目標(biāo)下面即可,這樣攝像機(jī)永遠(yuǎn)在目標(biāo)的后面 缺點(diǎn): 屏幕旋轉(zhuǎn)太平滑了 目標(biāo)物體在屏幕上的位置永遠(yuǎn)不變 目標(biāo)物體被銷毀時(shí)總不能把攝像機(jī)也銷毀了吧 先相機(jī)坐標(biāo)和物體坐標(biāo)做差,求得偏移量,在之后的每一幀里,將偏移量加上物體的坐標(biāo)。

    2024年02月21日
    瀏覽(31)
  • unity Camera(攝像機(jī))介紹

    目錄 一.攝像機(jī)類型 1.Perspective (透視攝像機(jī)) 2.Orthographic(正交攝像機(jī)) 二.攝像機(jī)屬性 1.Clear Flags 2.Background 背景色 3.Culling Mask 剔除遮罩 4.Projection 投影 5.Field Of View? ?視野范圍 6.Size 大小 7.Clipping Planes 裁剪屏幕 8.Viewport Rect 標(biāo)準(zhǔn)視圖矩形 9.Depth 深度 10.Rendering Path 渲染路徑

    2024年02月01日
    瀏覽(35)
  • unity攝像機(jī)平滑移動(dòng)旋轉(zhuǎn)

    Unity中使用Vector3.SmoothDamp(平滑阻尼)方法進(jìn)行跟隨移動(dòng),可以使跟隨看起來(lái)很平滑,而不顯得突兀,最典型的示例就是相機(jī)平滑跟隨角色移動(dòng)。 SmoothDamp (current : Vector3, target : Vector3, ref currentVelocity : Vector3, smoothTime ) ?

    2024年02月11日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包