刚体是赋予物体模拟的物理属性的组件。在组件栏中点击add Component->rigidbody便可以为选中的物体创建刚体。当然,现在创建的刚体只有基本的物理属性,更加高级的操作需要借助到脚本来进行控制。
Unity中的使用的脚本语言为JavaScript和C#,目前C#使用的更为广泛。创建脚本可以通过组件栏中点击add Component->new script或者直接在资源文件下create->script然后拖动脚本文件到绑定的物体上。
编辑代码之前,请先检查一下绑定的编辑器。点击左上角菜单栏中的edit->preferences进入设置,随后在External Tools中查看External script Editor 选项
打开脚本文件后,基本代码如下:
登录后复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class cube1 : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
这里创建了一个和文件名相同的类,有两个默认方法。start()表示初始方法,仅在游戏初始化时加载一次,update()表示持续性执行的方法,会按照FPS的频率来执行其中的代码。
在类中可直接定义私有变量来获取场景中的对象,例如获取刚体:
登录后复制
//创建刚体引用:
private Rigidbody cube1Rigidbody;
// Use this for initialization
void Start () {
//获取刚体对象:
cube1Rigidbody = GetComponent<Rigidbody>();
}
注意上面的代码,引用在成员变量中创建,而对象则在start()中获取。这么写的具体原因需要对C#有一定的了解。
如果要在游戏中对刚体进行进一步的操作,则需要在update()中写入代码进行控制,例如:
登录后复制
void Update () {
cube1Rigidbody.AddForce(new Vector3(1,0,0));
}
cube1Rigidbody为之前创建的成员变量,如果定义在其他方法内的话将无法访问到。AddForce()是刚体对象Rigidbody的一个方法,表示施加力,Vector3是向量类,这里表示创建了一个3维向量(1,0,0)。整句代码的作用是对刚体施加x方向1牛顿的作用力。
如果要将操作绑定至键盘上,我们可以这样写:
登录后复制
//检测键盘水平输入,默认为AD及左右键
float h = Input.GetAxis("Horizontal");
cube1Rigidbody.AddForce(new Vector3(h,0,0));
Input是一个输入对象,GetAxis表示获取键盘输入,Horizontal是水平的意思,即获取键盘水平上的输入,一般默认为AD或左右键。这个方法最终会返回一个float类型的数字,我们将这个数字代入到vector中,变可以通过键盘输入来控制刚体的受力了。同理,加入垂直方向上的控制只要在多加一句相似的代码即可:
float v = Input.GetAxis("Vertical");
即获取垂直方向上的输入,默认WS和上下键,吧v替换到vector中的第二项即可。
当然,这样不好控制物体的受力变化,我们可以对vector进行乘操作来控制它,当然这样也是不方便的,我们还能在整个类的成员变量中加入一个公有的变量来控制,使用public定义的成员变量可以和unity编辑界面绑定。
//力的控制:
public int F = 0;
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删