給物體添加力
兩個方法:
Rigidbody.AddForce(Vector3,ForceMode):給剛體添加一個力,讓剛體按世界坐標系進行運動
Rigidbody.AddRelativeForce(Vector3,ForceMode):給剛體添加一個力,讓剛體按自身坐標系進行運動
注意:物體運動過程中自身坐標系可能隨時發生改變(例如球滾動),這就意味着按自身坐標系運動方向可能會隨時發生變化
Vector3:力的向量,ForceMode:力的模式(枚舉類)
四種力的模式(Ft=mv):
ForceMode.Force:給物體一個持續的力
ForceMode.Acceleration:給物體一個持續的加速度,但是忽略其質量,質量被默認為1
ForceMode.Impulse:給物體添加一個瞬間的力
ForceMode.VelocityChange:給物體添加一個瞬間的加速度,忽略其質量
1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 public class Text1: MonoBehaviour 5 { 6 //因為Start()只會在開始游戲時被執行一次,所以一般都用來初始化 7 private Transform myTransform; //實例化Transform對象 8 private Rigidbody myRigidbody; 9 void Start() 10 { 11 Debug.Log("Start"); //輸出調試 12 myTransform = gameObject.GetComponent<Transform>(); //獲取相應對象的引用 13 myRigidbody = gameObject.GetComponent<Rigidbody>(); 14 } 15 // Update is called once per frame 16 void Update() 17 { 18 if(Input.GetMouseButtonDown(1)) 19 myRigidbody.AddForce(new Vector3(0, 0, -3), ForceMode.Impulse); 20 if(Input.GetMouseButton(0)) 21 myRigidbody.AddForce(new Vector3(0, 0, -10), ForceMode.Force); //如果動不了,可能是力量太小,需要調整向量參數 22 } 23 }
————————————————
版權聲明:本文為CSDN博主「Jaihk662」的原創文章,遵循CC 4.0 by-sa版權協議,轉載附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Jaihk662/article/details/86759794