1,前言
自制一个坦克大战的小游戏
本章参考了–b站视频
2,步骤
2.1,新建Cube
新建一个Cube并重命名为PlayerTank,用来搭载坦克模型,并在后期会将一些相关的脚本挂载在这个Cube上。
2.2,坦克模型
首先去Unity的Asset Store下载一些坦克模型,或者是使用本地就有的模型。
然后将模型拖拽给PlayerTank,使之成为PlayerTank的子物体
之后给PlayerTank添加上一些组件
由于游戏里的地形平坦,我就直接将x,z轴方向的旋转"锁"起来了
2.3,细节调整
接下来就是调整一些PlayerTank与坦克模型的位置了
点击Edit Collider调整Collider的大小,使得Player Tank的Collider能够包裹住坦克模型
这同时也方便了后期的炮弹和玩家坦克的碰撞判定,而且这样在实际运行中就不会因为Collider太小导致坦克模型跟地面发生穿模
注:橙色的物体就是PlayerTank
2.4,移动脚本
接下来就是编写玩家坦克的移动脚本了
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainTankController : MonoBehaviour
{
//定义前后运动的速度,向左运动的角度,向右运动的角度
private int v, vlr;
private void Start()
{
v = 20;
vlr= 50;
}
//程序每帧只运行一次
// Update is called once per frame
void Update()
{
//*Time.deltaTime是进行平滑处理
if (Input.GetKey(KeyCode.W))
this.gameObject.transform.Translate(0, 0, v * Time.deltaTime, Space.Self);
if (Input.GetKey(KeyCode.S))
this.gameObject.transform.Translate(0, 0, -v * Time.deltaTime, Space.Self);
if (Input.GetKey(KeyCode.A))
this.gameObject.transform.Rotate(0, -vlr * Time.deltaTime, 0, Space.Self);
if (Input.GetKey(KeyCode.D))
this.gameObject.transform.Rotate(0, vlr * Time.deltaTime, 0, Space.Self);
}
}
2.5,脚本挂载
将脚本挂载在PlayerTank(直接将脚本拖到PlayerTank上即可)
运行游戏,看看能否正常移动坦克