Unity百游修煉(2)——Brick_Breaker詳細制作全流程

一、項目簡介

????????Brick Breaker 是一款經典的打磚塊游戲,本次案例將使用 Unity 引擎來實現該游戲的核心功能。

游戲畫面如下:

Brick_ breaker


二、項目結構概覽和前期準備

(1)在 Unity 項目視圖中,我們可以看到幾個重要的文件夾:

  • Audio存放音頻文件,如子彈發射音效背景音樂
  • Picture:理論上存放游戲所需圖片資源(比如地板圖片材質磚塊的圖片材質)。
  • Prefab:預制體文件夾,包含 BulletWall 預制體方便在場景中實例化
  • Scenes:場景文件夾,當前僅有 SampleScene。
  • Scripts:腳本文件夾,存放控制游戲邏輯的 C# 腳本,如 Camera_FollowShoot

(2)導入資源操作:先在Project創建文件夾(便于管理不同資源),這里以Audio(音頻)文件夾為例子,Import new asset,把需要的音頻文件導入進來即可。其他的資源,比如導入圖片也是一樣

(3)導入預制體:bullet(子彈)和brick(磚塊)是需要很多的,而且進行操作基本相同,所以他們作為預制體,便于實例化操作,或者統一操作。(這里我以子彈(球體)為例)直接把創建的球體,拖入到你在Project視圖中你創建的Prefab文件夾中,即可出現子彈具有淺藍色的圖標

步驟一:在Hierarchy中創建相應的物體(Wall和Bullet)

步驟二:拖入到Project視圖中創建的Prefab文件夾中,即可出現子彈具有淺藍色的圖標


三、核心腳本

(一)Shoot 腳本:該腳本主要負責子彈發射和音頻控制。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Shoot : MonoBehaviour
{public GameObject bulletPrefab;public int bullect_Speed=50;public AudioSource bgmAudio;public AudioSource shootAudio;// Start is called before the first frame updatevoid Start(){// 這里可以設置背景音樂循環播放bgmAudio.loop = true;// 開始播放背景音樂bgmAudio.Play();}// Update is called once per framevoid Update(){if(Input.GetMouseButtonDown(0)){shootAudio.Play();GameObject bullect=GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation);Rigidbody rd= bullect.GetComponent<Rigidbody>();rd.velocity = new Vector3(0,0,-1)*bullect_Speed;// 播放發射聲音}}
}

(二)Camera_Follow 腳本:該腳本用于控制相機跟隨。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Camera_Follow : MonoBehaviour
{public float Move_Speed = 2;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){float f1= Time.deltaTime;float f2= Input.GetAxisRaw("Horizontal");float f3 = Input.GetAxisRaw("Vertical");transform.Translate(new Vector3(f2,f3,0)*f1* Move_Speed);}
}

四、制作步驟詳細(核心)

1.導入資源:將音頻文件、預制體等資源導入到對應的文件夾中。(在上方已說)

2.創建項目和場景:在場景中添加 基本對象。

步驟一:創建地面,Create——3D Object——Plane(創建完成記得修改名字,便于管理)


步驟二:設置地面大小以及個性化地面

步驟三:設置磚塊(Brick)以及個性化磚塊(利用復制和步移)

(1)Ctrl和shift先選中若干磚塊(便于更快的形成磚墻)

(2)步移(Ctrl+移動):一次移動0.25個單位

(3)搭建好之后,將所有的磚塊,統一放到一個空父類里面,便于管理

(4)將導入的圖片直接拖放到prefab文件夾的Wall中即可,直接對磚塊墻進行個性化。


3.編寫腳本:創建 Shoot 和 Camera_Follow 腳本,實現功能。

(1)相機移動的原理:相機的transform組件中有translate方法可以控制位置變化,通過按鍵wasd會傳入一個變化的值[-1,1],再將這個值*一定的倍數,那么就可以形成一個合適的速度,也就可以控制相機移動了。

(2)Shoot腳本實現鼠標左鍵發射原理:
????????(1)檢測鼠標左鍵被按下:

????????Input.GetMouseButtonDown(0):會返回一個bool值(true或者false),如果為真,代表被按下。(0代表鼠標左鍵,1代表鼠標右鍵)

????????(2)按下的瞬間要產生一個子彈:

????????GameObject.Instantiate(bulletPrefab, transform.position, transform.rotation);

????????Gameobject中有Instantiate()方法可以在指定位置,生成預制體實例

????????(3)子彈還有以一定的速度發射到正前方

?????????我們創建一個物體接受(2)中每次創建的實例,然后選中這個物體的剛體組件,調用其屬性velocity(速度),并給他一個速度即可。


4.掛載腳本和設置參數:將腳本掛載到相應的游戲對象上,并設置好腳本中的參數,如預制體引用、音頻源等
(1)把腳本拖放到 Main Camera上即可

(2)設置音頻

步驟一:在Main Camera中添加Audio source組件,然后在組件中添加導入的 射擊音效

步驟二:然后創建一個空物體,和上面一樣的操作添加Audio source組件,然后在組件中添加導入的 背景音效

步驟三:然后再選中Main Camera ,進行如圖操作即可成功導入音頻資源到物體上

步驟四:利用代碼,在恰當的時間,啟動音頻的開關即可。


五、后續擴展

????????目前該案例只是一個簡單的雛形,后續可以添加磚塊對象、碰撞檢測、得分系統等功能,進一步完善 Brick Breaker 游戲。希望通過這篇博客,能幫助大家了解使用 Unity 制作 Brick Breaker 游戲的基本流程和核心邏輯

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/71783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/71783.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/71783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

KubeSphere平臺安裝

KubeSphere簡介 KubeSphere 是一款功能強大的容器管理平臺&#xff0c;以下是其簡介&#xff1a; 1&#xff09;基本信息 開源項目&#xff1a;基于 Apache-2.0 授權協議開源&#xff0c;由 Google Go、Groovy、HTML/CSS 和 Shell 等多種編程語言開發。基礎架構&#xff1a;…

UE5銷毀Actor,移動Actor,簡單的空氣墻的制作

1.銷毀Actor 1.Actor中存在Destory()函數和Destoryed()函數 Destory()函數是成員函數&#xff0c;它會立即標記 Actor 為銷毀狀態&#xff0c;并且會從場景中移除該 Actor。它會觸發生命周期中的銷毀過程&#xff0c;調用 Destroy() 后&#xff0c;Actor 立即進入銷毀過程。具體…

Hadoop 基礎原理

Hadoop 基礎原理 基本介紹Hadoop 的必要性Hadoop 核心組件Hadoop 生態系統中的附加組件 HDFSHDFS 集群架構HDFS 讀寫流程HDFS 寫流程HDFS 讀流程 NameNode 持久化機制 MapReduce底層原理示例 Hadoop 是一個由 Apache 基金會開發的分布式系統基礎架構&#xff0c;主要解決海量數…

Linux編輯器

1.三種模式 2.圖例 3.wq 4.光標的使用

2.24DFS和BFS刷題

洛谷P2895&#xff1a;用BFS走出危險區域&#xff0c;危險區域存在時間&#xff0c;我們用ma記錄最快變成危險區域的時間&#xff0c; 然后每次枚舉時間1然后跟ma數組比較看能不能走&#xff0c;然后時間復雜度為O(305^2)。 #include<iostream> #include<cstring>…

TMDS視頻編解碼算法

因為使用的是DDR進行傳輸&#xff0c;即雙倍頻率采樣&#xff0c;故時鐘只用是并行數據數據的5倍&#xff0c;而不是10倍。 TMDS算法流程&#xff1a; 視頻編碼TMDS算法流程實現&#xff1a; timescale 1 ps / 1ps //DVI編碼通常用于視頻傳輸&#xff0c;將并行數據轉換為適合…

C++中tuple的用法

C中tuple的用法 在C中&#xff0c;std::tuple 是一個模板類&#xff0c;用于存儲一組不同類型的值。它類似于 Python 中的元組&#xff0c;但具有更強大的功能&#xff0c;例如支持不同類型的元素和更復雜的操作。std::tuple 是 C11 標準引入的&#xff0c;位于 <tuple>…

計算機網絡————(一)HTTP講解

基礎內容分類 從TCP/IP協議棧為依托&#xff0c;由上至下、從應用層到基礎設施介紹協議。 1.應用層&#xff1a; HTTP/1.1 Websocket HTTP/2.0 2.應用層的安全基礎設施 LTS/SSL 3.傳輸層 TCP 4.網絡層及數據鏈路層 IP層和以太網 HTTP協議 網絡頁面形成基本 流程&#xff1a…

【網絡編程】廣播和組播

數據包發送方式只有一個接受方&#xff0c;稱為單播。如果同時發給局域網中的所有主機&#xff0c;稱為廣播。只有用戶數據報(使用UDP協議)套接字才能廣播&#xff1a; 廣播地址以192.168.1.0 (255.255.255.0) 網段為例&#xff0c;最大的主機地址192.168.1.255代表該網段的廣…

小程序如何實現跨頁面通信

前言 最近有很多同學問&#xff0c;小程序里面如何進行跨頁面通信。看了下之前的老代碼&#xff0c;基本都是基于onShow或者localStorage。雖然可以實現&#xff0c;但是并不怎么優雅。 今天就來聊一聊&#xff0c;小程序的跨頁面通信的幾種實現方案。或許會有你想要的方案&a…

【工具】win-畫圖 保留圖片信息并僅改變圖片比例的工具

Windows 系統自帶的“畫圖”工具 Windows 系統自帶的“畫圖”&#xff08;Paint&#xff09;工具可以進行簡單的圖片編輯&#xff0c;包括調整圖片大小和比例。 使用方法&#xff1a; 打開“畫圖”工具&#xff08;可以通過在開始菜單中搜索“畫圖”或“Paint”&#xff09;。…

如何編輯autodl中以.bashrc結尾的隱藏文件

在nnunet的運行過程中遇到了設置環境變量的問題。之前沒有接觸過linux系統&#xff0c;但是autodl里面默認是linux系統。.bashrc 是一個在 Bash shell 啟動時執行的腳本文件&#xff0c;常用于設置環境變量、定義別名、加載函數等&#xff0c;用戶可以通過編輯這個文件來定制自…

實驗3 知識表示與推理

實驗3 知識表示與推理 一、實驗目的 &#xff08;1&#xff09;掌握知識和知識表示的基本概念&#xff0c;理解其在AI中的深刻含義與意義&#xff1b; &#xff08;2&#xff09;熟悉AI中常用的知識表示方法的優缺點及其應用場景&#xff1b; &#xff08;3&#xff09;掌握產…

在 M1 Mac 上解鎖 TensorFlow GPU 加速:從環境搭建到實戰驗證

在 M1 Mac 上解鎖 TensorFlow GPU 加速&#xff1a;從環境搭建到實戰驗證 前言&#xff1a;蘋果芯片的深度學習新紀元 隨著 Apple Silicon 芯片的普及&#xff0c;M1/M2/M3 系列 Mac 已成為移動端深度學習開發的新選擇。本文將以 TensorFlow 2.x 為例&#xff0c;手把手教你如…

Python 數據分析概述 ①

一文讀懂Python數據分析&#xff1a;從基礎到實踐全攻略 在當今數字化浪潮中&#xff0c;數據分析已然成為解鎖海量數據價值的關鍵鑰匙&#xff0c;而Python憑借其獨特優勢&#xff0c;在數據分析領域大放異彩。今天&#xff0c;咱們就結合教學PPT內容&#xff0c;深入探索Pyt…

【Gin-Web】Bluebell社區項目梳理6:限流策略-漏桶與令牌桶

本文目錄 一、限流二、漏桶三、令牌桶算法四、Gin框架中實現令牌桶限流 一、限流 限流又稱為流量控制&#xff0c;也就是流控&#xff0c;通常是指限制到達系統的并發請求數。 限流雖然會影響部分用戶的使用體驗&#xff0c;但是能一定程度上保證系統的穩定性&#xff0c;不至…

Linux高并發服務器開發 第十九天(線程 進程)

目錄 1.進程組和會話 2.守護進程 2.1守護進程daemon概念 2.2創建守護進程 3.線程 3.1線程的概念 3.2線程內核三級映射 3.3線程共享 3.4線程優缺點 4.線程控制原語 4.1獲取線程id 4.2創建線程 4.3循環創建N個子線 4.4子線程傳參地址&#xff0c;錯誤示例 4.5線程…

軟件工程和系統分析與設計

軟件工程 1、軟件危機 2、軟件過程模型 2.1 瀑布模型 2.2原型模型 2.3螺旋模型 2.4敏捷模型 2.5軟件統一過程 3、軟件能力成熟度模型 CMM 4、軟件能力成熟度模型集成 CMMI 系統分析與設計 1、結構化方法SASD 1.1結構化分析 DFD 1.2結構化設計 SD-是一種面向數據流的設計…

Qt/C++面試【速通筆記一】

Qt 信號與槽機制 什么是信號&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;&#xff1f; 在Qt中&#xff0c;信號&#xff08;Signal&#xff09;和槽&#xff08;Slot&#xff09;是實現對象之間通信的一種機制。信號是對象在某些事件發生時發出的通知&…

LangChain大模型應用開發:構建Agent智能體

介紹 大家好&#xff0c;博主又來給大家分享知識了。今天要給大家分享的內容是使用LangChain進行大模型應用開發中的構建Agent智能體。 在LangChain中&#xff0c;Agent智能體是一種能夠根據輸入的任務或問題&#xff0c;動態地決定使用哪些工具(如搜索引擎、數據庫查詢等)來…