(三)坦克大战--(1)坦克移动

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上即可)
运行游戏,看看能否正常移动坦克

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值