亡命时速游戏制作3
1.在亡命时速游戏2的基础上,我们在Project中新建一个Scripts的文件夹,用于存放之后我们要写的脚本。
2.我们打开在mmmm文件下的子文件夹Vehicles,选择车辆1即veh-car1,将其拖到上方的GameScene中,此时,我们可以在游戏窗口中看到一辆小车。
3.在GameScene中创建一个空物体,为GameObject,在其右边的面板中,将它的数据进行重置。
4.将GameObject在右边将其名字改为car1,并按以下回车键,原来GameScene中的GameObject的名字也改为了car1,再将veh-car1拖到car1中。
5.在Scripts文件夹下建立c#脚本(右键单击create,选择c#即可),并将其添加到上方GameScene中的car1上,若成功添加,在car1的右边面板中会有所显示。
6.双击c#脚本PlayerController,在Visual Studio中打开它(本人用的是Visual Studio 2017)
然后在其中编写代码(我在代码后面加了注释,应该能够更好理解)
代码:
using System.collections;
using System.collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour{
[SerializeField] //创建一个新的序列化字段
private float speed; //速度将应用于车子的移动
[SerializeField] //创造另一个文明的球形角度
private float angle //角速度将被用于旋转
/*
接下来,
我们要考虑到刚体的结构,
所以我们要创建一个私有类型的刚体
*/
private Rigidbody myBody; //将刚体命名为myBody
private int currentAngle; //然后输入输入私有类型的整数型参数currentAngle,这将用于存储我们的游戏对象的当前角度
//Use this for initialization
void Start(){
myBody = GetCompontent<Rigidbody>();
}
//Update is called once per frame
void FixedUpdate(){ //我们想让我们的玩家在固定更新中改变他的位置,所以我们把Update改为FixedUpdate
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
}
保存完代码后,我们回到U3D中,将car1中的Speed和Angle Speed的值分别置为5和15.
点击运行按钮后,我们可以看到小车再向前前进
7.在PlayerController原来的代码基础上,添加我下面图中框出的代码。
再回到Unity中,将car1的角速度改为90度。
这时,当我们点击运行按钮时,如果我们的鼠标点击在小车的左边区域,小车会向左旋转(顺时针),点击右边区域,小车会向右旋转(逆时针)。
8.双击car1,我们在Scene就可以清晰的看到小车,然后点击原先在现在(图中)Z的位置,进入2D模式,我们要给小车加一个碰撞器。
给小车添加碰撞器:
再点击Edit Collider,在场景中修改碰撞器的大小,使之能将小车囊括其中。
9.将car1中最下层的veh-car1中的position的x和z值都改为0,这样小车就位于屏幕的中央了。
敬请期待:亡命时速游戏制作(四)