关于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.
添加一个瞬间速度变化给刚体,忽略它的质量。
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值