[Unity3D]使方块运动的程序脚本的使用与说明

来源:互联网 发布:网页信息抓取软件 编辑:程序博客网 时间:2024/05/22 10:36

关于脚本的详细使用说明请参照这篇博文:

[Unity3D]在Unity3D中Javascript的基本使用与介绍

关于碰撞检测的问题请参考这篇博文:

[Unity3D]在Unity3D中实现简单的碰撞检测


上回我们说过了如何使用Unity自带的地形系统,那么这一回来简单的讲解一下如何使用脚本进行控制。

首先,选择GameObject->Create Other->Cube创建一个立方体。

我们将该场景另存为TankWar0.2做好版本控制。

调整正方体和摄像机的位置,大致能在屏幕中看到摄像机即可。

运行一下发现这个正方体不受任何物理效果的影响,我们选择Component->Phisics->Rigid Body为小方块添加刚体,

运行之后便会发现小方块受重力作用自由落体。

下面我们在Inspector里对Rigid Body选择Remove移除刚体,接下来讲解一下如何使用脚本让立方体运动起来。

新建一个文件夹Code用来存放脚本文件。

新建一个JavaScript文件,命名为CubeMove用来控制方块的移动。

脚本的源码

var MoveSpeed = 5;var RotateSpeed = 20;function Update(){if(Input.GetKey(KeyCode.W)){//获得按键的键值,如果按下的是W键则前进print("Moving W");this.transform.Translate(Vector3.forward*Time.deltaTime*MoveSpeed);}else if(Input.GetKey(KeyCode.S)){print("Moving S");this.transform.Translate(Vector3.forward*Time.deltaTime*-MoveSpeed);}else if(Input.GetKey(KeyCode.A)){print("Moving A");this.transform.Rotate(Vector3.up*Time.deltaTime*-RotateSpeed);}else if(Input.GetKey(KeyCode.D)){print("Moving D");this.transform.Rotate(Vector3.up*Time.deltaTime*RotateSpeed);}}


将Project面板中的CubeMove拖动到Cube上将其赋值给方块,点击运行试一下发现随着我们按下键盘的WASD,方块也会发生相应的变换。

接下来我们给相机也添加一个脚本来控制,但是这个脚本是Unity事先写好的。

在Project面板右击,像上一篇介绍的一样我们引入一个Scripts文件夹,里面有一个SmoothFollow脚本文件,将其拖放到MainCamera上面。

再次选中MainCamera可以看到已经有一个脚本文件附在上面了。

在Hierachy面板按住Cube不放拖动到脚本的Target上面:

以此实现了脚本与方块的关联。

这个时候再运行文件我们会发现相机可以跟着方块移动。

这个时候再重复上面提到的添加刚体的操作,再次运行,那么这个具有刚体的小方块就算配置完成了。


原创粉丝点击