【Unity 3D】VR飞机起飞喷火游戏案例实战(附源码和演示视频 超详细)

需要源码和资源包请点赞关注收藏后评论区留言私信~~~

下面我们用Unity 3D搭建一个飞机在跑道上喷火起飞的3D游戏案例,效果如下面的图片和视频所示

一、效果演示

 

视频如下

VR飞机

二、实现步骤 

打开Unity Hub 选择新建项目 选择3D模块

导入资源 将资源包Aircaft.unitypackage导入,里面包含所有的资源文件

导入资源后 场景目录结构如下

 

然后就开始搭建场景

我们点击Scenes文件夹,在Level1中进行场景的搭建

找到Models目录下的GroundRunway.FBX地面跑道模型,将其拖入场景,然后对其进行美化

1:调整摄像机 从顶部进行俯视

2:调整灯光的参数

3:设置天空球  防止飞机飞出界外

4:制作材质球

5:调整材质球的参数

然后开始制作火焰喷射特效,不过通常粒子特效由专门的特效师进行制作,所以如果不想学习的小伙伴可以跳过这个步骤,直接使用Project视图中的Prefabs文件夹内的Afterburner.prefab文件即可

接下来实现飞机飞行功能

首先整理一下对象,在Hierarchy视图中右击,选择Create Empty命令,新建一个空对象,命名为Aircraft 将position和rotation参数都设置为全0

新建一个脚本文件命名为AircraftMove 编辑代码如下

using UnityEngine;

public class AircraftMove : MonoBehaviour
{
    private float forwardSpeed = 50;          //前进的速度
    private float backwardSpeed = 25;         //后退的速度
    private float rotateSpeed = 2;           //旋转速度

    private GameObject MainCamera;
    private Vector3 TargetOffset;

    private void Start()
    {
        MainCamera = GameObject.Find("Main Camera");
        TargetOffset = MainCamera.transform.position - transform.position;
    }

    private void FixedUpdate()
    {
        //获取到横轴 前后 的输入 也就是键盘W 和S的输入
        float h = Input.GetAxis("Horizontal");
        //获取到纵轴 左右 的输入 也就是键盘A 和D的输入
        float v = Input.GetAxis("Vertical");
        //从上下键的输入,获取到Z轴的输入量
        Vector3 velocity = new Vector3(0, 0, v);
        //将世界坐标转化为本地坐标
        velocity = transform.TransformDirection(velocity);
        //判断是前进还是后退
        if (v > 0.1)
        {
            velocity *= forwardSpeed;
        }
        else
        {
            velocity *= backwardSpeed;
        }
        //前进或者后退
        transform.localPosition += velocity * Time.fixedDeltaTime;
        //旋转机身
        if (v == 0)
        {
            transform.Rotate(0, h * rotateSpeed, 0);
        }
        //空格起飞
        if (Input.GetKey(KeyCode.Space) && v != 0)
        {
            float value = 0;
            transform.Rotate(Mathf.Clamp(value, -2, -1), 0, 0);
        }

        //主摄像机跟随
        MainCamera.transform.localPosition = transform.position + TargetOffset;
    }
}

将脚本拖到Aircraft身上作为Aircraft组件,运行程序,使用键盘就可以控制飞机移动了 按住空格键前进,飞机就能抬头起飞了

创作不易 觉得有帮助请点赞关注收藏~~~

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值