关于脚本的详细使用说明请参照这篇博文:
[Unity3D]在Unity3D中Javascript的基本使用与介绍
关于碰撞检测的问题请参考这篇博文:
[Unity3D]在Unity3D中实现简单的碰撞检测
上回我们说过了如何使用Unity自带的地形系统,那么这一回来简单的讲解一下如何使用脚本进行控制。
首先,选择GameObject->Create Other->Cube创建一个立方体。
我们将该场景另存为TankWar0.2做好版本控制。
调整正方体和摄像机的位置,大致能在屏幕中看到摄像机即可。
运行一下发现这个正方体不受任何物理效果的影响,我们选择Component->Phisics->Rigid Body为小方块添加刚体,
运行之后便会发现小方块受重力作用自由落体。
下面我们在Inspector里对Rigid Body选择Remove移除刚体,接下来讲解一下如何使用脚本让立方体运动起来。
新建一个文件夹Code用来存放脚本文件。
新建一个JavaScript文件,命名为CubeMove用来控制方块的移动。
脚本的源码:
[javascript] view plaincopyprint?
- 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);
- }
- }
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上面:
以此实现了脚本与方块的关联。
这个时候再运行文件我们会发现相机可以跟着方块移动。
这个时候再重复上面提到的添加刚体的操作,再次运行,那么这个具有刚体的小方块就算配置完成了。
本文转自:http://blog.csdn.net/wxg694175346/article/details/8520117