[Unity小游戏]打砖块(打方块)教程(超详细)

2023-11-11

[Unity小游戏]打砖块(打方块)(超详细)

打砖块小游戏通常会被当做Unity学习的第一个案例,下面给大家介绍如何实现打砖块案例的,先来张图看看效果
在这里插入图片描述

首先我们要知道QWER分别是选择、移动、旋转、缩放工具的快捷键(英文模式下按住才有用),只有在scene场景中才能对物体进行操作,game视角是相机视角

一、打开Unity,创建一个cube拉伸来当作地面放置方块(要是地形够平就可以不用,直接创建平面也行,我这里按F2重命名为地面)
在这里插入图片描述
二、创建一个cube,将它移动到地面的上方,并给它添加Rigibody,使他具备基本的物理属性(简单来说就是被碰撞后会被击飞或者在半空中会掉下来,这是实现打砖块游戏的基础)
在这里插入图片描述
三、将此cube移动到Assets中,使他成为一个预制体在这里插入图片描述
四、复制多个Cube,使它成为一堵墙。方法:在scene场景中,点击cube,Ctrl+D复制,选择移动工具,按住CTRL键移动,这样每次最会移动一个预设单位距离
在这里插入图片描述

多复制几个后调整位置对齐(因为上传的动图要小于5M所以我没浪费时间对齐,可以按住ctrl移动来对齐)
在这里插入图片描述
多选:点击要复制的第一个cube,按住shift的同时点击要复制的最后一个cube,按Ctrl+D,用移动工具在场景里面按住Ctrl拖动,就能够复制出一堵墙。

补充:给方块上色

五、创建一个材质,设置颜色,给cube上色,单击Assets文件夹,右键选择Create ——Material(我这里就不浪费时间,只上色一个)
在这里插入图片描述
六、调整相机位置到cube墙体的前方,结合scene和game场景来看相机位置是否合适(可以通过相机的Transform值来调整相机位置)
在这里插入图片描述
七、点击相机,给相机添加移动脚本,我给脚本起名为move,点击进入脚本进行编辑
在这里插入图片描述
(如果你的脚本名和我的脚本名一样,可以直接复制一下代码,不然需要改class后面的类名)

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

public class move : MonoBehaviour
{
    public float speed = 3;  //设置一个共有类型的变量 来设置相机移动速度 public类型可以在代码外进行修改 并以代码外修改的数据作为脚本中运行的数据
    public float bulletspeed = 50;  //子弹速度
    private float h;  //设置h来获取Horizontal(横轴方向的输入,即A键和D键的输入)
    private float z;  //设置z来获取Vertical(纵轴方向的输入,即W键和S键的输入)
    public GameObject bullet;  //定义一个对象:子弹


    //start函数中的代码,在游戏开始时会运行一次,后面将不会运行 ,这里用不到
    void Start()
    {
    }

    // Update 里面的代码 每一帧都会运行
    void Update()
    {
        float h = Input.GetAxis("Horizontal");  //获取AD键的输入  即水平方向
        float z = Input.GetAxis("Vertical");    //获取WS键的输入  垂直方向
        transform.Translate(new Vector3(h, z, 0) * Time.deltaTime * speed);
        //translate是transform的一个属性 表示平移 Vector3(x,y,z)表示空间中的一个三维向量 我们这里来通过h和z的输入来控制向量的大小来实现相机的位移
        //Update一帧执行60次,每帧都new 一个Vector3的话,对内存是一个消耗,所以乘一个 Time.deltaTime后每帧都只执行一次 也就是说 按一下只移动3个单位(speed=3),不然就会移动speed*60个单位
        if (Input.GetMouseButtonDown(0))  //如果按下鼠标左键  代码表示为  Input.GetMouseButton(0)
        {
            //instantiate(克隆对象,克隆位置,克隆角度)   transform.position没有前缀 默认为this.transform.potiton 即这个物体的位置
            GameObject a = GameObject.Instantiate(bullet, transform.position, transform.rotation); //创建一个和bullet(子弹)一样的对象,位置和相机的位置一样,因为这个脚本是挂在相机上面的;
            Rigidbody rgd = a.GetComponent<Rigidbody>(); //把a刚体属性给rgd
            rgd.velocity = transform.forward * bulletspeed; //Rigidbody.velocity 这个方法是瞬间给物体一个恒定的速度,将物体提升至该速度。
            // transform.forward 是向前的方向  * speed 发射速度   
           Destroy(a, 2);  //两秒后摧毁a  即子弹
        }
    }
}

Ctrl+S保存!!!

八、回到Unity中制作子弹预制体,在这之前我们把所以cube都放在一个空物体下,点击scene右键创建一个空物体,利用shift键选中所有cube,拖拽至gameobject下,按F2可以重命名,我将它命名为方块墙
在这里插入图片描述

创建子弹预制体:在空白面板处右键创建sphere(球体),点击sphere,在其Transform面板下找到Scale(缩放),我将其各个方向的大小都缩放至0.1 使其成为子弹的大小,并将其拖拽至Assets下使之成为预制体。
在这里插入图片描述
然后在scene下把sphere删除掉(文件中还是会有sphere,不用担心,下图为删除后的样子)
在这里插入图片描述

九、给预制体sphere添加Rigidbody组件,使其具备物理属性,在代码中也调用了其物理属性,所以得加上
在这里插入图片描述
加上Rigidbody后再将sphere拖拽至相机move脚本下的bullet中,使之实例化,代码中的bullet就成了游戏中的sphere了
在这里插入图片描述

十、点击运行按钮即可运行,WASD控制移动,鼠标左键发射。
在这里插入图片描述
ohhh这样我们的第一个Unity案例就完成了!是不是很激动!!!在我的博客主页中可以找到更多有关Unity的学习内容,日后也会不定期更新,有需要的同学可以关注一波。

————————————————分割线———————————————

前几天上课突然来了灵感,制作了一款打砖块游戏,下面附有链接,里面有三种游戏模式,有三个彩蛋,告诉大家一个彩蛋 第一个游戏中按7次N再按K 可以用大方块射击 第一个游戏需要在4秒内击落所有方块 第二个游戏需要在23秒内击落23个方块

链接:https://pan.baidu.com/s/1myDSwXo1ijUJik0WChAZ5A
提取码:6n2j

在我的资源里面也有:点击下载

(gif动图太大了,只能录一小部分,感兴趣的可以下载一个玩玩,37M大小,最新的2.3.2版本,可以在我的资源里面找到1.0.0版本,1.0.0版本为最初版本,只有一个功能)
在这里插入图片描述
最后谢谢大家的支持啦ohhh!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Unity小游戏]打砖块(打方块)教程(超详细) 的相关文章

  • 蒙特卡洛积分、重要性采样、低差异序列

    渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中 要计算总的反射光 每个入射方向的贡献 必须将他们在半球上相加 为入射光线 与法线 的夹角 为方便计算可以使用法线向量和入射向量 单位化 的乘积表示 对于基于图像的
  • unity网络资源导入

    1 找到需要导入的文件 这里导入fbx格式 2 打开unity界面 在Asset目录下创建文件夹FBX 将需要导入的fbx预制体或整个文件夹拖入创建的FBX文件夹下 3 选中需要的fbx预制体并拖至场景中 4 双击定位到当前物体 5 找到需
  • [Unity XLua]热更新XLua入门(一)-基础篇

    Aladdin XLua 前言 前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议 也受到广大开发者的热捧 然后我当然也抱着好奇的心去学习学习 后面也会将扩展之后的工程放在git上 大家一起学习交流 在此感谢XLua
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • Unity动画系统详解

    目录 动画编辑器 编辑器面板 动画复用 前言 人形重定向动画 Humanoid 通用动画 Generic 旧版本动画 Legacy 动画控制器 系统状态 切换条件 状态机脚本 IK动画 反向动力学 BlendTree 混合树 Animato
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • unity中创建询问弹出窗口

    在开发过程中进程会遇到需要弹出一个窗口询问用户是否进行的操作 今天就来制作一个这样弹出窗口 然后根据弹出窗口的选择内容不同进行不同的操作 本例中主要是为了删除一个数据 而在删除数据操作前需要得到用户的一个确认操作 这里面主要用到了Notif
  • unity工程崩溃资源找回

    1 Unity死机未保存场景 当你在Unity中编辑场景 突然死机时 可以在项目文件目录中找到Temp文件夹 双击文件夹 找到 Backupscenes文件夹 把后缀为 backup的文件后缀改为 unity 然后拖进Unity的Proje
  • 【IMGUI】 各种辅助类 EditorGUIUtility、EditorUtility、GUIUtility、GUILayoutUtility

    EditorGUIUtility class in Editor 继承自 GUIUtility EditorGUI 的各种辅助程序 EditorGUIUtility currentViewWidth 我尝试打印了下这个值和position
  • 【Unity】按Esc进入操作菜单

    本文章是基于如下视频的自我总结 https www youtube com watch v JivuXdrIHK0 步骤如下 1 在Canvas 界面添加一个Panel Panel中添加一个按钮 调整按钮的大小为合适大小 调整字体的大小为合
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • NO.6——Unity3D中两种绘制小地图的方法

    在玩游戏时 你经常会发现 在游戏窗口的右上角或者左下角通常会有一个小地图 里边实时反馈角色的移动信息甚至是世界地图 那么这个小地图是如何绘制的呢 我目前掌握了两种方法 一种是以GUI方法重新绘制一个小窗口 另一种是新建一个正交投影的摄像机机
  • Unity3D的四种坐标系

    1 World Space 世界坐标 我们在场景中添加物体 如 Cube 他们都是以世界坐标显示在场景中的 transform position可以获得该位置坐标 2 Screen Space 屏幕坐标 以像素来定义的 以屏幕的左下角为 0
  • Unity在UI界面上显示3D模型/物体,控制模型旋转

    https blog csdn net ChinarCSDN article details 81058773
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发创建操作之玩家信息系统的建立

    游戏一般都需要玩家信息系统 那么我们应该如何搭建玩家信息系统 接下来我将展示一种简单的方法 完整代码如下 using System Collections using System Collections Generic using Uni
  • 游戏开发常见操作梳理之NPC药品商店系统(NGUI版)

    后续会出UGUI Json的版本 敬请期待 游戏开发中经常会出现药品商店 实际操作与武器商店类似 甚至根据实际情况可以简化设置 废话不多说 直接上代码 药品商店的源码 using System Collections using Syste

随机推荐

  • yar框架的并行原理分析(libcurl+epoll)

    yar是一个轻量级的php rpc框架 有意思的是它的并行 其实就是libcurl作为网络库提供http请求 然后用epoll做为事件监听来实现整个异步并行调用的 在此基础上 就是如何利用zend api来对整个逻辑的封装了 我们先抛开ze
  • 平衡小车调试总结及心得

    目录 一 知识点 1 PID控制算法 2 平衡原理 二 硬件 1 编码器 2 电机 3 PWM 4 陀螺仪MPU6050 三 PID调节过程 1 理论部分 1 1直立环 1 2速度环 串级PID 1 3 纯比例控制 2 调参步骤 2 1大致
  • sql注入之万能密码总结

    sql注入之万能密码总结 万能密码 万能密码原理 万能密码 asp aspx万能密码 PHP万能密码 jsp 万能密码 万能密码 啊这 一般用来ctf登录的时候试试 这是sqli labs用的时候 我来记录一下 万能密码原理 原验证登陆语句
  • Python基础——函数的基本使用

    文章目录 一 定义 二 属性 三 操作 1 函数的参数 2 函数返回值 3 函数多个返回值 4 多个return语句 5 函数调用函数 6 函数的联系及注释 7 局部变量和全局变量 8 数据的传递 9 lambda表达式 一 定义 1 语法
  • 【TensorFlow】TensorFlow函数精讲之 tf.nn.relu()

    tf nn relu 函数是将大于0的数保持不变 小于0的数置为0 函数如图1所示 ReLU函数是常用的神经网络激活函数之一 图1 ReLU函数图像 下边为ReLU例子 import tensorflow as tf v tf consta
  • 自动控制原理与动态系统的建模与分析

    1 开环系统和闭环系统 反馈控制 1 1开环控制 开环控制系统是指无被控量反馈的系统 即在系统中控制信息的流动未形成闭合回路 1 2 闭环控制 有被控量反馈的控制 即系统的输出信号沿反馈通道又回到系统的输入端 构成闭合通道 也叫做反馈控制
  • go get国内解决办法汇总

    go作为Google大佬的亲儿子 go开发过程中除了SDK自带的包外还经常会需要用到大佬提供的其他包 这些包都在golang org下 而下载这些包需要访问大佬的服务器 国内开发者就会遇到各种的问题 今天就给大家总结一下有哪些途径安装这些包
  • Android Studio Flutter 开发配置

    近来比较闲 就研究下Flutter 开发 在此记录下studio 配置过程 时间是2023 7 19 在 Windows 操作系统上安装和配置 Flutter 开发环境 1 首先下载 Flutter SDKhttps storage flu
  • 基于51单片机水塔水箱液水位WIFI监控报警设计proteus仿真原理图PCB

    功能 0 本项目采用STC89C52作为单片机系统的控制MCU 1 WIFI实时上传当前水位状态 2 通过液位传感器检测液位 检测到最低液位和最高液位时 超过设定阈值将声光报警 3 通过状态指示灯显示当前液位情况 三种颜色 红色代表低于下限
  • python urllib下载文件怎么停止_python下载文件的三种方法

    Python开发中时长遇到要下载文件的情况 最常用的方法就是通过Http利用urllib或者urllib2模块 当然你也可以利用ftplib从ftp站点下载文件 此外Python还提供了另外一种方法requests 下面来看看三种方法是如何
  • unity利用高阶贝塞尔曲线进行的轨道移动

    之前想做一个按照固定的路线进行移动的demo 就想到了路径的曲线 然后就想到了贝塞尔曲线 先上贝塞尔通用公式 借鉴网上的代码和相应的函数公式 组成了一个demo 通用的贝塞尔曲线工具类 using System Collections us
  • elasticsearch基础6——head插件安装和web页面查询操作使用、ik分词器

    文章目录 一 基本了解 1 1 插件分类 1 2 插件管理命令 二 分析插件 2 1 es中的分析插件 2 1 1 官方核心分析插件 2 1 2 社区提供分析插件 2 2 API扩展插件 三 Head 插件 3 1 安装 3 2 web页面
  • Python 基础知识5 元组操作

    元组 与列表不同之处 1 使用 定义 2 定以后元组的元素不能修改 元组定义 只有一个元素时元素后加 号 否则为整型 tup1 hello world 120 123 tup2 1 5 4 2 3 tup3 a b c d tup4 pri
  • Maven项目中读取src/main/resources目录下的配置文件

    在Maven项目的开发中 当需要读取src 下的配置文件时 该怎么做 我们假设Resources下有一个文件名为kafka properties的配置文件 为什么用kafka properties 因为这是在做kafka项目的时候碰到的问题
  • global::System.Runtime.Versioning.TargetFrameworkAttribute 特性重复

    visual studio code 反编译 报错 global System Runtime Versioning TargetFrameworkAttribute 特性重复 在 csproj文件内添加
  • itk.js读取.nii.gz文件,vtk.js进行渲染

    我们只需要用到itk中的 readImageArrayBuffer 从这个api我们可以看出 我们需要的是一个ArrayBuffer的数据 那么 我们通过 vtk js中的vtkHttpDataAccessHelper的方法把数据转换成Ar
  • 提高接口并发量,防止崩溃

    思路 对高并发的接口 单独配置线程池 需考虑线程池内的线程数量 以及tomcat总线程数量与CPU的关系 线程池的配置 接口如何配置单独的线程池 异步任务 Async myExecutors 对实时性要求高的 分析下 实时就是同步 每一次请
  • 如何卸载FF推荐?

    很多小伙伴们都发现 近一段时间 自己的电脑中时常会弹出一个叫 FF新推荐 的广告弹窗 扰民不说显示的内容也很猥亵 按理说 电脑上开启拦截软件后 一般的广告弹窗是不会出现的 那么这个能跳过安全工具拦截的家伙是何背景 能否永久地关闭它 今天小编
  • PingCAP刘奇:如何构建一个NewSQL数据库

    PingCAP刘奇 如何构建一个NewSQL数据库 75 0 0 编者按 6月24日 由香港主办 开源社群主导的国际技术会议 香港开源年会2016 HKOSCon 在港召开 PingCAP 联合创始人兼CEO刘奇应邀出席 与大家分享了 Ho
  • [Unity小游戏]打砖块(打方块)教程(超详细)

    Unity小游戏 打砖块 打方块 超详细 打砖块小游戏通常会被当做Unity学习的第一个案例 下面给大家介绍如何实现打砖块案例的 先来张图看看效果 首先我们要知道QWER分别是选择 移动 旋转 缩放工具的快捷键 英文模式下按住才有用 只有在