Unity为物体施加力笔记
一个小游戏的Player的一些代码
个人的理解笔记
using UnityEngine;
public class Player : MonoBehaviour
{
public Rigidbody rb;/*获得一个物体的rigidbody组件,使其可以在这个script
中可以使用。*/
//定义三个方向的力的大小
public float forwardforce = 1000f;
public float Upforce = 1000f;
public float slideforce = 600f;
// Update is called once per frame
void FixedUpdate()/*Unity喜欢调用FixedUpdate去处理有关物理计算,使用这
个名字会更好*/
{
/*给物体一个恒定的力(z轴),*Time.deltaTime是为了防止帧数不同导致的
加载速度不同(Update为每帧调用一次)*/
rb.AddForce(0, 0, forwardforce * Time.deltaTime);
/*检测输入按键“d”输入的话就会执行其中的代码*/
if (Input.GetKey("d"))
{
/*给rb这个物体施加一个x方向的力,使用ForceMode.VelocityChange会不再
以力的形式,而是直接给物体添加一个这个方向的速度,防止因为向量的原因导
致的方向改变不够敏捷,同时这种模式下需要数值小一点*/
/*把物体的rigidbody组件中的Drag(空气阻力)给拉大一点,这样物体停止
的更快,反应更快*/
rb.AddForce(slideforce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if (Input.GetKey("a"))
{
rb.AddForce( - slideforce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
}
}