给物体添加力
两个方法:
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