Unity編碼篇 Rigidbody類

2020-12-03 Mm說Unity

Rigidbogy組件可以使遊戲對象在物理系統的控制下運動 , 發射一顆子彈 ,如果子彈沒有命中任何物體 ,最後 子彈會因為重力落下 , 此時就可以利用 Rigidbody 組件實現 , 但是使用該組件一般在 FixedUpdate 函數中執行 , 因為物理仿真一般都在固定頻率下進行計算的 . (FixedUpdate 函數是固定頻率調用的 , 與你的硬體配置沒有關係 , 忘記的小夥伴請參考之前的九大生命周期)

下面介紹一下常用的方法 :

AddForce 方法 : 給物體加一個瞬時的力 , 物體受這個力運動 (扔手雷的時候就是用這個方法) ;AddTorque 方法 : 給物體添加一個扭矩 (這個方法用的較少) ;Sleep 方法 : 使物體進入休眠狀態 , 至少會休眠一幀(一般在 Awake 裡調用);WakeUp 方法 : 使物體從休眠狀態轉為喚醒狀態 ;

我們做一個發射子彈的小例子吧

建一個 Sphere 作為子彈 , 掛上bullet 腳本

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class bullet : MonoBehaviour

{

// 定義一個 Rigidbody 類型的對象

private Rigidbody rig;

private void Awake()

{

// 獲取這個物體身上的 Rigidbody 組件

rig = GetComponent<Rigidbody>();

// 休眠一幀

rig.Sleep();

}

private void Start()

{

// 喚醒

rig.WakeUp();

// 受到一個方向向前 500N 的力

rig.AddForce(Vector3.forward * 500f);

}

}

再建一個空物體 , 改名為 Shoot , 掛上 Shoot 腳本

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;

public class Shoot : MonoBehaviour

{

// 定義一個子彈對象

private Transform m_bullet;

private void Start()

{

// 獲取這個子彈對象

m_bullet = Resources.Load<Transform>("bullet");

}

private void Update()

{

// 如果按下滑鼠左鍵

if (Input.GetMouseButtonDown(0))

{

// 實例化一個子彈

Instantiate(m_bullet);

}

}

}

然後我們運行unity

按一下滑鼠左鍵 , 就會生成一個子彈 , 子彈在生成的時候會受到一個向前500N的力 , 然後以拋物線的方式落到地上 ;

大家可以看一下運行效果 , 是不是和現實生活中扔出去一個東西一樣 , 會拋物線落到地上 .

下期為大家介紹一下 Time 類 , 讓你可以在 unity 中掌控時間 .

相關焦點

  • Unity編碼篇 Mathf類和Random類
    今天給大家介紹一下 Mathf 類 和 Random 類 ,Mathf 是數學中用到的方法 :Abs : 絕對值Clamp : 把數值限制在規定的最小值和最大值之間Cos : 餘弦值Deg2Rad : 角度轉弧度 ;Log : 對數 ;Max : 最大值 ;Min
  • Unity Ragdoll 實現死亡效果 心得+坑點總結
    Rigidbody> ragdollRigidbodys = new List<Rigidbody>(); public List<Collider> ragdollColliders = new List<Collider>(); void InitRagdoll() { Rigidbody[] _rigidbodys
  • 喵的Unity遊戲開發之路 - 搭便車:移動地面
    Rigidbody body, connectedBody; 如果我們在 EvaluateCollision 中檢測到地面接觸,我們可以簡單地將rigidbody碰撞的屬性分配給我們的場。
  • unity什麼意思
    unity什麼意思uni前綴,只包含一個的,更多例子還有:uniform, unique, unilateral, etc. 發音類似於有你,整個世界中有你就夠了,不需要別人,也就是只包含一個的。unity,聯合、統一、團結、和睦。學單詞,只記住意思可不行,會用才行,小夥伴們可以在評論區造句,我們一起學習哦!我先來:造句:Unity is strength. (團結就是力量)
  • Unity 實用技巧 - 物理系統初識
    falseOnCollisionEnter //碰撞第一次調用OnCollisionStay //保持碰撞中調用 OnColliosionExit //退出碰撞時調用 Is Trigger = trueOnTriggerEnter //進入觸發器OnTriggerStay //停留觸發器OnTriggerExit //離開觸發器碰撞觸發函數主要有兩類
  • Unity編碼篇 碰撞事件
  • 王者榮耀是怎樣煉成的(三)unity組件與腳本
    上回書王者榮耀是怎樣煉成的(二)《王者榮耀》unity安裝及使用的小白零基礎入門 說到了unity的基本操作。
  • Unity遊戲開發基礎知識整理
    3、燈光和攝像機:燈光類型:spot(聚光燈)、directional(方向光)、point(點燈光)、area(區域光)4、物理引擎:joint關節組件joint關節組件依賴於rigidbody
  • Unity 2018.3 Beta版發布
    直播課程:Facial AR Remote面部捕捉解決方案課程(第一期)直播地址:https://connect.unity.com/events/unitychina-facialarUnity官方教師培訓報名火熱進行中Unity將在10月22-26日,舉辦為期5天的專業的Unity官方教師培訓課程,誠邀廣大教師與
  • 在unity中用C#連接資料庫步驟
    所以本文就介紹一下unity連MySQL資料庫所遇到的一些坑。unity連接資料庫,首先你需要導入如圖所示的五個數據連結庫。在本圖中,歐陽講他們放到了Mysql文件夾下,在這裡歐陽強調一下――最好將他們放到Plugins文件夾下,不然會出現莫名其妙的問題哦。
  • 數字編碼運用記憶篇9—108位好漢④
    以下是第四次分享的內容:1.了解數字82-108的編碼(溫馨提示:編碼在公眾號第一篇文章有提到,可以去查看,此處100-108位編碼用00-08代替),以下是數字82-108的編碼:82=飛鏢;83=玉璽;84=巴士;85=排骨;86=飛彈;
  • 博主營地 | Unity3D 實用技巧 - 理論知識庫(一)
    請描述Interface與抽象類之間的不同。  抽象類表示該類中可能已經有一些方法的具體定義,但接口就是只能定義各個方法的界面 ,不能具體的實現代碼在成員方法中。類是子類用來繼承的,當父類已經有實際功能的方法時該方法在子類中可以不必實現,直接引用父類的方法,子類也可以重寫該父類的方法。
  • unity實戰之大主宰
    然後回到unity,點擊windows ->package manager,就能找到自己的資源,全部import這裡是獲取場景後的結果:對於複雜的特殊組件,一般通過按鈕添加,如果想添加自定義的代碼,就是用:object.AddComponent(typeof(class_name))其結果相當於把class打包進入一個cs文件,並添加到對象裡,這個類必須繼承MonoBehaviour
  • 土地利用現狀分類及新舊地類編碼對照表
    土地利用現狀分類及新舊地類編碼對照表 基本地類 1984舊地類
  • 2021新年匯總:Unity項目原型快速開發資源,看這一篇就夠
    Example Game : https://assetstore.unity.com/packages/templates/flappy-bird-style-example-game-80330 Tower Defense Template : https://assetstore.unity.com/packages/essentials
  • Unity項目開發過程中常見的問題,你遇到過嗎?
    最近看到有朋友問一個unity遊戲開發團隊,需要掌握哪些知識之類的問題。
  • 使用unity製作RPG遊戲3——2D精靈
    context=%7B%22nid%22%3A%22news_9564882242542237691%22%2C%22sourceFrom%22%3A%22bjh%22%2C%22url_data%22%3A%22bjhauthor%22%7D下面需要利用Tiled2Unity把01地圖導入unity下載Tiled2Unity,在根目錄下打開可執行文件進入unity。
  • unity遊戲製作初始人物控制代碼
    大家好,今天小編帶大家學習一哈unity遊戲製作中初始人物控制代碼。1.我們知道遊戲中,選中人物,在人物未開始運動前,往往會有一個初始的動作,好的,我們這節課通過unity中相關代碼和基礎設置來實現這一效果。
  • Unity3D 尋路系統
    https://docs.unity3d.com/Manual/class-NavMeshAgent.html四、組件Nav Mesh Obstacle的使用http://docs.unity3d.com/Manual
  • 郵政快遞類碩博研究生怎麼培養?通用寄遞地址編碼是啥?專家解讀
    新京報訊(記者 吳婷婷)加快培養郵政快遞類碩士、博士研究生,推進通用寄遞地址編碼項目試點……昨日,記者從全國郵政管理工作會議上了解到,2021年,郵政快遞業將發生新變化。會上,國家郵政局黨組書記、局長馬軍勝還表示,「十三五」期間,我國包裹快遞市場規模連年穩居世界第一。預計2021年郵(快)件業務量完成1219億件,同比增長12%左右。