日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《射击游戏》游戏开发记录

發(fā)布時間:2024/1/1 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《射击游戏》游戏开发记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

游戲開發(fā)的學(xué)習(xí)記錄⑥

項目:射擊游戲

開始時間:2022.9.29

(已經(jīng)結(jié)束很久了,一直忘了寫,補一下)

新學(xué)到的:

  • 做小地圖,用來看自己和敵人的位置
  • //獲得屏幕分辨率比率 float ratio = (float)Screen.width / (float)Screen.height; //使攝像機視圖永遠(yuǎn)是一個正方向,rect的前兩個參數(shù)表示地圖位置,后兩個參數(shù)是地圖大小 this.GetComponent<Camera>().rect = new Rect((1 - 0.2f), (1 - 0.2f * ratio), 0.2f, 0.2f * ratio);

    在做小地圖這段中,我新認(rèn)識了Rect,下面是關(guān)于官網(wǎng)中rect的截圖,官網(wǎng)上的圖讓我一度認(rèn)為y值設(shè)的越小,距離上方越近。

    但是在x值不變的情況下,當(dāng)y=0.65反而比0.2距離上方近


    所以,這里還不是很理解


  • 敵人狀態(tài)的一個轉(zhuǎn)換
  • m_timer -= Time.deltaTime;AnimatorStateInfo stateInfo = m_ani.GetCurrentAnimatorStateInfo(0);//待機且不是過渡狀態(tài)if (stateInfo.fullPathHash == Animator.StringToHash("Base Layer.idle") && !m_ani.IsInTransition(0)){m_ani.SetBool("idle", false);if (m_timer > 0){return;}//距離小于1.5,進入攻擊狀態(tài)if (Vector3.Distance(m_transform.position, m_player.m_transform.position) < 1.5f){m_agent.ResetPath();m_ani.SetBool("attack", true);//攻擊}else{m_timer = 1;//重置定時器m_agent.SetDestination(m_player.m_transform.position);//設(shè)置尋路目標(biāo)m_ani.SetBool("run", true);//行走}}

    Vector3.Distance:

  • 敵人自動轉(zhuǎn)向玩家
  • void RotateTo(){Vector3 targetdir = m_player.m_transform.position - m_transform.position;Vector3 newDir = Vector3.RotateTowards(transform.forward, targetdir, m_rotSpeed * Time.deltaTime, 0.0f);m_transform.rotation = Quaternion.LookRotation(newDir);}

    Vector3.RotateTowards:

  • 槍的射擊
  • RaycastHit info;//用來保存射線探測結(jié)果 //從槍口向攝像機的正方向射出來一條射線,該射線只能與m_layer指定的層碰撞 bool hit = Physics.Raycast(m_muzzlepoint.position, m_camTransform.TransformDirection(Vector3.forward), out info, 100, m_layer); public static bool Raycast (Vector3 origin, Vector3 direction, float maxDistance= Mathf.Infinity, int layerMask= DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction= QueryTriggerInteraction.UseGlobal); 參數(shù)意思
    origin射線在世界坐標(biāo)系中的起點
    direction射線的方向
    maxDistance射線應(yīng)檢查碰撞的最大距離。
    layerMask層遮罩,用于在投射射線時有選擇地忽略碰撞體
    queryTriggerInteraction指定該查詢是否命中觸發(fā)器


    成品部分截圖:


    這部分是自己做了一個簡單的登錄,因為人機交互作業(yè)的實驗二是文本交互,可以基于javaweb做網(wǎng)頁的登錄界面,但還是對unity更熟悉點,所以在這個前面加了登錄界面,交了人機交互的作業(yè),我真是個小機靈鬼。

    加了一個簡單的開始界面。上面兩張背景圖都是網(wǎng)上找的素材。

    這是游戲內(nèi)的場景。


    🈶一個小記錄:
    這算是第一個小的3d方面的游戲了,最近沒做什么新的了,在研究vr怎么做,真的不懂!!!還沒接觸代碼,還在學(xué)一些渲染相關(guān)的,又裝了做材質(zhì)的軟件,還有建模軟件blender,以前用過3dmax,不知道blander好上手不好,但它和unity的配合真的蠻好用的,不用把模型再導(dǎo)進導(dǎo)出了。


    (繼續(xù)加油 ? )

    總結(jié)

    以上是生活随笔為你收集整理的《射击游戏》游戏开发记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。