新手十分钟也能完成的Unity小游戏打砖块

news2024/11/24 14:33:38

   由Siki学院打砖块游戏启发完成一个非常非常简单,纯新手也能十分钟做出来的小游戏——打砖块。

一.搭建场景

        首先我们先在一个空白的3D项目中创建一个Plane平面,将其放置于世界中央位置,长宽设置为2,并为其添加一个材质Material,将其改为黑色;改名为ground

        然后创建一个标准的Cube,将其position的y设置为0.5,放于ground正上方;为其添加一个材质Material,改成紫色,改名为brick;

        创建一个预制体文件夹

                        ​​​​​​​        ​​​​​​​        

        将brick拖入Prefab文件夹中制成预制体

        通过ctrl+D复制brick,再按住ctrl步移复制体,最终将其拼成一个6x10的砖墙,砖块可以放入一个空物体下统一管理

二.控制相机的移动

        为相机添加一个移动脚本Movement

编写Movement脚本

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

public class Movement : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float h = Input.GetAxis("Horizontal");//获取键盘的左右移动
        transform.Translate(new Vector3(h, 0, 0));//通过向量改变transform
    }
}

        再Update中我们编写获取键盘输入,并通过translate方法对相机的位置进行改变,实现了相机的左右移动。但是当我们进入游戏实验的时候 ,发现移动速度太快了。这是因为Update方法一秒执行60帧,而GetAxis的变化是从-1~1的变化,乘上60会导致相机移动速度过快。

        所以我们需要一秒移动一米该怎么办呢,很明显我们需要一个帧数的倒数,但是帧数会根据用户电脑性能不同而变化,还好Unity内置了一个这样的功能——Time.deltatime

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

public class Movement : MonoBehaviour
{
    public int speed = 5;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        transform.Translate(new Vector3(h, v ,0) * Time.deltaTime * speed);
        
    }
}

        加上Time.deltaTime后再*速度即可自由控制移动速度。

三.制作小球

        首先我们先制作一个预制体小球,先在场景中添加Spere,再给小球添加一个Materal材质给他改成红色,并命名为Bullet,然后将其拖入预制体Prefab文件夹,并为其添加刚体rigidbody

        然后创建一个脚本,命名为Shoot,添加到MainCamera上

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

public class Shoot : MonoBehaviour
{
    public GameObject Bullet_Prefab;
    // Start is called before the first frame update
    void Start()
    {
        //GameObject.Instantiate(Bullet_Prefab, transform.position, transform.rotation);
    }

    // Update is called once per frame
    void Update()
    {
        if(Input.GetMouseButtonDown(0))
        {
            //创建一个子弹
            GameObject Bullet=GameObject.Instantiate(Bullet_Prefab, transform.position, transform.rotation);
            //获取子弹的刚体组件
            Rigidbody rd = Bullet.GetComponent<Rigidbody>();
            //直接赋予刚体一个速度
            rd.velocity = Vector3.forward * 30;
        }
    }
}

        再为Brick预制体添加上rigidbody,游戏就制作完成了。

四.效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握Go的运行时:从编译到执行

目录 一、Go运行编译简介Go语言的目标和设计哲学运行时环境编译过程小结 二、执行环境操作系统与硬件层系统调用&#xff08;Syscalls&#xff09;虚拟内存 Go运行时&#xff08;Runtime&#xff09;Goroutine调度器内存管理和垃圾收集网络I/O代码示例&#xff1a;Go运行时调度…

SQL:增、删、改、查 基本语句 Navicat建库(用法 + 例子)

文章目录 新建数据库新建表 增、删、改、查select 查找insert 添加delete 删除update 修改where 扩展 < > < > ! <> 比较运算符and or 逻辑运算符between...and... 介于..和..之间in 包含like 模糊查询is null 为空的 查询扩展order by 排序limit start coun…

7.网络原理之TCP_IP(下)

文章目录 4.传输层重点协议4.1TCP协议4.1.1TCP协议段格式4.1.2TCP原理4.1.2.1确认应答机制 ACK&#xff08;安全机制&#xff09;4.1.2.2超时重传机制&#xff08;安全机制&#xff09;4.1.2.3连接管理机制&#xff08;安全机制&#xff09;4.1.2.4滑动窗口&#xff08;效率机制…

朴素贝叶斯深度解码:从原理到深度学习应用

目录 一、简介贝叶斯定理的历史和重要性定义例子 朴素贝叶斯分类器的应用场景定义例子常见应用场景 二、贝叶斯定理基础条件概率定义例子 贝叶斯公式定义例子 三、朴素贝叶斯算法原理基本构成定义例子 分类过程定义例子 不同变体定义例子 四、朴素贝叶斯的种类高斯朴素贝叶斯&a…

LM小型可编程控制器软件(基于CoDeSys)笔记三十一:保持变量和非保持变量

所谓变量&#xff0c;就是用字母、数字和下划线组成的一个标识符。 按照数据类型的不同&#xff0c;变量可以分为标准类型和用户自定义类型。其中标准类型包括布尔型 &#xff08; BOOL &#xff09;、整型&#xff08; INT &#xff09;、实型&#xff08; REAL &#xff09…

【网络协议】TCP报文格式

1.源端口和目的端口 源端口字段占16比特&#xff0c;用来写入源端口号。源端口号用来标识发送该TCP报文段的应用进程。 目的端口字段占16比特&#xff0c;用来写入目的端口号。目的端口号用来标识接收该TCP报文段的应用进程。 2.序号 当序号增加到最后一个时&#xff0c;下…

【C语言_题库】舍罕网的失算?明明是我的失算!

test 舍罕王 失算 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜爱象棋&#xff0c;决定让宰相自己选择何种赏赐。这位聪明的宰相指着 8 * 8 共 64 格的象棋说&#xff1a;“陛下&#xff0c;请您赏给我一些麦子吧。就在棋盘的第 1 格放 1 粒&#xff0c;第 2…

leetCode 198.打家劫舍 动态规划

198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#…

机器学习---BP算法

1. 多级网络 层号确定层的高低&#xff1a;层号较小者&#xff0c;层次较低&#xff0c;层号较大者&#xff0c;层次较高。 输入层&#xff1a;被记作第0层。该层负责接收来自网络外部的信息。 第j层&#xff1a;第j-1层的直接后继层&#xff08;j>0&#xff09;&#xff…

sub0 里斯本精彩回顾:探索波卡区块的创新空间

sub0 Europe 2023 已在葡萄牙里斯本圆满结束&#xff01;sub0 大会是波卡生态开发者大会&#xff0c;由波卡协议的主要开发方 Parity Technologies 举办的开发者大会&#xff0c;汇聚了全球 Substrate 开发者和学习者&#xff0c;旨在为 Polkadot 和 Kusama 生态的开发者、贡献…

【红日靶场】vulnstack2-完整渗透过程

文章目录 一、网络拓扑二、描述配置环境渗透开始信息收集开始攻击干掉杀软cs上线权限提升 内网探测横向移动再次横向rdp连接痕迹清除 总结&#xff1a; 一、网络拓扑 网络配置&#xff1a; 二、描述 红队实战系列&#xff0c;主要以真实企业环境为实例搭建一系列靶场&#x…

Library ‘iconv2.4.0‘ not found 问题及解决方法

今天升级了一下Mac mini 和Xcode&#xff0c;运行项目就报Library iconv2.4.0 not found的错误 mac mini 升级&#xff1a;13.0 --> 13.6 xcode升级到&#xff1a;15.0(15A240d) 可以肯定 项目在旧版本下&#xff0c;是能通过编译 并且能运行的。 废话不多说&#xff0c…

网络安全——自学(黑客)方法

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…

再生之术:遗忘 Root 密码的 CentOS8 Stream 解决方案

文章目录 大魔头 RootGRUB 引导界面BootLoaderGRUB主要功能选择启动的操作系统编辑内核启动参数 进入GRUB 引导界面编辑内核启动参数单用户模式 进入内核编辑界面rd.break进入单用户模式 大魔头 Root 哈哈&#xff0c;你好&#xff01;今天&#xff0c;让我们来聊聊 Linux 系统…

提高效率!掌握项目管理工具中任务优先级的使用技巧

在项目管理中&#xff0c;我们经常会遇到一些具有强制依赖关系的任务。这些任务之间的关系是绝对的&#xff0c;并且毫无疑问必须首先完成什么。例如&#xff0c;您必须先设计一个产品&#xff0c;然后才能构建它&#xff0c;并且必须先构建它&#xff0c;然后才能绘制它。然而…

嵌入式芯片-NE555

目录 1、比较器&#xff08;运放&#xff09; 2、相反门&#xff08;非门&#xff09; 3、或非门 4、双稳态触发器 5、NE555功能框图 1、比较器&#xff08;运放&#xff09; 2、相反门&#xff08;非门&#xff09; 3、或非门 4、双稳态触发器 5、NE555功能框图

FastestDet---模型训练

代码:https://github.com/dog-qiuqiu/FastestDet 一、构造数据集 数据集格式YOLO相同,每张图片对应一个txt标签文件。标签格式:“category cx cy wh”,category为类别id,cx, cy为归一化标签框中心点的坐标,w, h为归一化标签框的宽度和高度, .txt标签文件内容示例如下: 0…

基于SpringBoot的医院管理系统

目录 前言 一、技术栈 二、系统功能介绍 病床信息管理 药房信息管理 个人中心管理 药房信息 病床类别 科室信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介…

如何像人类一样写HTML之代码编辑器的选择与基础框架

文章目录 前言一、 HTML是什么&#xff1f;二、 HTML的发展历史三、 HTML的优点a. 简单易学b. 跨浏览器兼容性c. 良好的可读性 四、 超文本是什么&#xff1f;五、 代码编辑器的选择&#xff1a;VSCodea. 安装VSCodeb. 创建HTML文件方式1方式2 c. 编写HTML代码安装Live Server插…

【算法基础】数组和链表,动态数组,循环数组,链表的变种

目录 1 数组&#xff08;Array&#xff09; 1.1 定义和特点 1.2 基本操作 1.3 数组的时间复杂度 1.4 应用场景 2 链表&#xff08;Linked List&#xff09; 2.1 定义和特点&#xff1a; 2.1.1 单向链表&#xff08;Singly Linked List&#xff09; 2.1.2 双向链表&…