IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity3D射击小游戏Demo开发 -> 正文阅读

[游戏开发]Unity3D射击小游戏Demo开发

DEMO介绍

有一面由许多小矩形块拼起来的墙,游戏的玩法就是通过鼠标左键点击发射小圆球,小圆球撞击墙体,使组成墙体的矩形块被冲撞开。

游戏展示

在这里插入图片描述

开发流程

创建开发环境,新建项目

新建项目(这里我是拿Unity 202.3.1的版本)。
在这里插入图片描述

创建地面

在这里插入图片描述
给地面一个颜色。

将GroundM材质拖给Ground即可。

创建墙体

由于墙体是有多个相同的小矩形拼成的,所以用预制体(Prefab)来做一个小矩形的模板,然后其他的小矩形根据这个模板来生成也就是实例化
在这里插入图片描述
同样的给它一个颜色。
在这里插入图片描述
然后再Assets目录下创建一个Prefabs的目录,将Brick拖入Prefabs中去,这样一个预制体就做好了~(可以观察Brick左边的图标是否变蓝来判断预制体是否制作成功)。

然后我们可以选中Brick这个方块,按下Ctrl + D就可以对该预制体进行复制,然后在Scene界面下调整各个方块的摆放位置。

然后给预制体小球加上刚体组件,不然就做不到物理碰撞。
在这里插入图片描述

最后做完的样子。
在这里插入图片描述
在Scene下用鼠标拖动调制Brick方块的位置时可能会拖动得不精确,这个时候我们可以按住Ctrl再用鼠标拖动就可以根据步长来移动,这个移动的步长也可以进行修改。
在这里插入图片描述
在这里插入图片描述

制作子弹小球

同墙体制作差不多,射出的小球都是一样的,所以也要用到预制体。
给小球调整好大小,设置好颜色,然后拖入Prefabs文件夹中即可。
在这里插入图片描述
给小球添加刚体组件,不然就不能做物理碰撞。
在这里插入图片描述

移动视野

游戏就如同电影,相机拍到什么,我们才能看到什么。
我们可以通过改变相机的位置角度,从而达到移动视野的目的。
在这里插入图片描述
在Assets文件夹下创建一个Scripts文件夹,该文件夹存放我们所有写的Script脚本文件。
这里我们新建一个CameraMove的脚本文件来实现相机的移动。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMove : MonoBehaviour
{
    public int speed = 1;   // 镜头移动速度
    public int rotateSpeed = 1; // 镜头随着鼠标移动的速度
    // Start is called before the first frame update
    // 初始化操作
    void Start()
    {
    }

    // Update is called once per frame
    // 每一帧执行的动作
    void Update()
    {
        float h = Input.GetAxis("Horizontal"); // 得到的是一个-1到1的中间的值(-1,1),h代表的是水平的,v代表的是垂直的
        float v = Input.GetAxis("Vertical");
        float x = Input.GetAxis("Mouse X") * rotateSpeed;   // 获取鼠标在屏幕上的x坐标
        float y = Input.GetAxis("Mouse Y") * rotateSpeed;   // 获取鼠标在屏幕上的y坐标
        transform.Translate(new Vector3(h,v,0) * speed * Time.deltaTime);   //当前帧运动的距离,Time.deltaTime表示的是当前帧到当前帧结束所需要的时间
        
        transform.localRotation = transform.localRotation * Quaternion.Euler(-y,x,0); //镜头随着鼠标动
    }

    //private void FixedUpdate 一秒执行50帧动作,每帧执行0.02秒,可以修改 在Edit-> Project Settings-> Time-> FixedTimestep中修改
}

将写好的CameraMove脚本拖给Main Camera,这样我们游戏中的视野就可以动了。

射击功能

步骤同上面的CameraMove脚本一样。
在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Shoot : MonoBehaviour
{
    public GameObject BulletPrefab;
    // Start is called before the first frame update
    void Start()
    {
        // GameObject.Instantiate(BulletPrefab,transform.position,transform.rotation); //实例化一个prefab的一个对象
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {            
            GameObject bullet = GameObject.Instantiate(BulletPrefab,transform.position,transform.rotation); // 实例化,实例化的小球的位置跟相机的位置以及角度相同
            Rigidbody rd = bullet.GetComponent<Rigidbody>();
            // 两种给小球速度的方式,一种是给一个带方向的力,另一种是给一个带方向的速度
            // rd.AddForce(Vector3.forward); //给子弹一个向前为1牛顿的力,每一帧给一牛
            Ray mouseRay= Camera.main.ScreenPointToRay(Input.mousePosition); // 生成以摄像机为起点经鼠标点位置的射线
            rd.velocity = mouseRay.direction * 35; // 设置子弹的速度,这个速度有方向
        }
    }
}

将该脚本拖给Main Camera。
在这里插入图片描述
同时也要讲预制体Bullet拖给Shoot脚本中对应的属性。

最后

就可以开始射击了,biubiubiu~。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-07-15 16:34:29  更:2021-07-15 16:35:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 11:30:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计