关于Unity里面物体移动的问题
关于Unity里面物体移动的问题
围绕某一个平面水平移动,可以围绕某一个轴旋转
在Rigidbody中存在一个Constraints这个属性,这个属性有一个freeze Position和Freeze Rotation,这个分别是刚体组件的移动和旋转的控制
以Freeze Position为例,它提供了三个选项 X Y Z 这个三个属性分别表示可以在哪个平面里面移动,
上图就是表示物体可以在XY这个面移动,物体旋转只能围绕着Y轴旋转
//每一帧改变的时候会执行这个方法
void FixedUpdate() {
float v = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
Debug.Log(""+v);
//使刚体组件朝着左右方向以偶定 v的值有正有负,也就是红轴的方向 v的值为0-1
m_Rigidbody.velocity = transform.forward * v * speed;
// 这里是改变刚体组件的角速度向量 表示以Y轴,也就是上方向为旋转轴进行旋转,后面的h为0-1之间的值,angleSpeed表示旋转的速度
m_Rigidbody.angularVelocity = transform.up * h * angleSpeed;
}
关于刚体施加力的问题
void Start()
{
rb = GetComponent<Rigidbody>()
}
void FixedUpdate()
{
// rb表示物体的刚体组件,下面的参数
rb.AddForce(transform.forward*trust);
}
//以上是通过forward直接指明方向再加上施加的力,然而如果三个方向同时作用力,那就需要四参数的的方法
void FixedUpdate()
{
rb.AddForce(0,0,1,ForceMode.Impulse)
}
/*
Add a continuous force to the rigidbody, using its mass.
添加一个可持续力到刚体,使用它的质量。
Acceleration
Add a continuous acceleration to the rigidbody, ignoring its mass.
添加一个可持续加速度到刚体,忽略它的质量。
Impulse
Add an instant force impulse to the rigidbody, using its mass.
添加一个瞬间冲击力到刚体,使用它的质量。
VelocityChange
Add an instant velocity change to the rigidbody, ignoring its mass.
添加一个瞬间速度变化给刚体,忽略它的质量。
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)