Unity3D学习笔记(3)添加刚体组件并实现移动

前言

unity 3d刚体组件(Rigidbody)和添加力到对象使对象移动


一、Rigidbody是什么?

通常把在外力作用下,物体的形状和大小(尺寸)保持不变,而且内部各部分相对位置保持恒定(没有形变)的理想物理模型称为刚体。刚体是物理引擎中最基本的组件。在物理学中,刚体是一个理想模型。

Unity 3D 中的 Rigidbody(刚体)可以为游戏对象赋予物理属性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的运动效果。

在游戏制作过程中,只有为游戏对象添加了刚体组件,才能使其受到重力影响。

在一个物理引擎中,刚体是非常重要的组件,通过刚体组件可以给物体添加一些常见的物理属性,如质量、摩擦力、碰撞参数等。

二、使用步骤

1.添加刚体组件

若游戏对象是一个小球,把小球对象命名为player,点击小球,在检查器面板最下方点击添加组件,然后选择物理,再选择刚体即可。

2.脚本中获取对象的刚体组件

为player对象创建一个脚本,这里命名为player.cs,打开编辑器,在代码中输入以下代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	  public Rigidbody rd;//创建一个刚体对象
    // Start is called before the first frame update
    void Start()
    {
        rd = GetComponent<Rigidbody>();//获取刚体组件
    }

    // Update is called once per frame
    void Update()
    {
    }
}

3.给刚体组件施加力(实现小球滚动)

添加代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	  public Rigidbody rd;//创建一个刚体对象
    // Start is called before the first frame update
    void Start()
    {
        rd = GetComponent<Rigidbody>();//获取刚体组件
    }

    // Update is called once per frame
    void Update()
    {
    	float h = Input.GetAxis("Horizontal");//A、D/左、右方向键
        float v = Input.GetAxis("Vertical");//W、S/前、后方向键
        //获取到的float初始是0,在有按键按下时,会递增/递减(取值范围是-1~1),可以模拟一个缓冲加速的过程
        rd.AddForce(new Vector3(h, 0, v));//vector3是矢量,模拟的是物理上的力
    }
}

现在就可以通过WASD和方向按键选择方向,并通过AddForce方法给对象添加一个矢量的力来推动小球滚动。

注意: 在游戏中,在游戏帧率较低的情况下,可以把上述Update方法中的代码写在FixedUpdate方法中,这样更稳定。

4.修改按键(轴线)

上述代码中Horizontal和Vertical分别代表水平轴线和垂直轴线,这在unity项目中是可以更改的,具体位置在编辑——项目设置——输入管理器中,如下:

Unity3D学习笔记(3)添加刚体组件并实现移动
在里面还可以修改按键、灵敏度等,或者添加自定义的轴线。

上一篇:Codeforces Round #367 (Div. 2)D. Vasiliy's Multiset (字典树)


下一篇:Unity3d笔记