Unity3D實(shí)現(xiàn)打磚塊游戲
本文實(shí)例為大家分享了Unity3D實(shí)現(xiàn)打磚塊的具體代碼,供大家參考,具體內(nèi)容如下
基于unity2017
1、 使用Plane創(chuàng)建初始地圖
(層級(jí)菜單[Hierarcy]-> 3D Object -> Plane)
2、將Plane命名為Gound
3、 更改Scale
x = 2,y = 2,z = 2,將Plane變?yōu)樵瓉?lái)的兩倍

4、在Assest下新建一個(gè)文件夾并命名為Material
用于存放材質(zhì)
5、創(chuàng)建材質(zhì)
(右鍵 -> Create -> Mateial),并命名為Gound
6、設(shè)置材質(zhì)的貼圖
1).材質(zhì)的貼圖
2).金屬度
3).光滑度

7、設(shè)置墻壁
1).在Assets中創(chuàng)建一個(gè)Prefab目錄。
2).在層級(jí)目錄中創(chuàng)建一個(gè)Cube,并將其設(shè)為Prefab,設(shè)置為Prefab主要是便于整體修改。
3).創(chuàng)建一個(gè)空組件,將Cube作為空組件的子組件,并將空組件命名為Bircks
4).為Prefab的Cube組件添加Rigibody屬性(物理屬性) (點(diǎn)擊add Component搜索 Rigibody)
5).使用Ctrl + D 復(fù)制方塊 與 Ctrl + 左鍵 按單元格拖動(dòng)方塊

8、創(chuàng)建子彈
在prefab下創(chuàng)建Sphere,同時(shí)添加Rigibody屬性
9、添加子彈飛出腳本
1).在Assets下創(chuàng)建Script文件夾用于存放腳本
2).右鍵創(chuàng)建C#腳本,命名為Shoot
3).將Shoot腳本賦予給相機(jī)(Main Camera)只需要將腳本拖到Main Camera組件上就可以添加腳本了

4).編輯腳本
public GameObject buttle;//用于獲得子彈對(duì)象
public float speed = 20F;
? ? // Use this for initialization
? ? void Start () {
? ? }
? ? // Update is called once per frame
? ? void Update () {
? ? ? ? //當(dāng)鼠標(biāo)按下左鍵時(shí)觸發(fā)
? ? ? ? if (Input.GetMouseButtonDown(0))
? ? ? ? {
? ? ? ? ? ? //創(chuàng)建子彈對(duì)象
? ? ? ? ? ?GameObject gb = GameObject.Instantiate(buttle,transform.position,transform.rotation);
? ? ? ? ? ?//創(chuàng)建剛體對(duì)象
? ? ? ? ? ?Rigidbody rg = gb.GetComponent<Rigidbody>();
? ? ? ? ? ?//設(shè)置子彈初始速度
? ? ? ? ? ?rg.velocity = transform.forward * speed;
? ? ? ? }
? ? }5).賦予腳本Public屬性值
只要腳本聲明為public的字段,就可以從外部直接得到,這時(shí)將準(zhǔn)備好的Prefab的Shpere子彈賦值給Buttle

10、創(chuàng)建鏡頭移動(dòng)腳本
方法同上,創(chuàng)建一個(gè)Movement的C#腳本,賦予Main Camera
public class Movement : MonoBehaviour {
? ? public float speed = 5F;
? ? // Use this for initialization
? ? void Start () {
? ? }
? ? // Update is called once per frame
? ? void Update () {
? ? ? ? float h = Input.GetAxis("Horizontal"); //控制水平移動(dòng)
? ? ? ? float v = Input.GetAxis("Vertical");//控制垂直移動(dòng)
? ? ? ? //設(shè)置攝像機(jī)位置
? ? ? ? transform.Translate(new Vector3(h, v, 0) * Time.deltaTime * speed);
? ? }
}11、結(jié)束

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用MSScriptControl 在 C# 中讀取json數(shù)據(jù)的方法
下面小編就為大家?guī)?lái)一篇使用MSScriptControl 在 C# 中讀取json數(shù)據(jù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
C#實(shí)現(xiàn)上位機(jī)與歐姆龍PLC通訊(FINS)
這篇文章主要介紹了C#實(shí)現(xiàn)上位機(jī)與歐姆龍PLC通訊(FINS)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
解決C#中Linq GroupBy 和OrderBy失效的方法
最近發(fā)現(xiàn)了一個(gè)問(wèn)題,在服務(wù)器端的Linq GroupBy 和OrderBy居然不管用,后來(lái)終于解決了所以現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒。2016-09-09
.NET實(shí)現(xiàn)父窗體關(guān)閉而不影響子窗體的方法
這篇文章主要介紹了.NET實(shí)現(xiàn)父窗體關(guān)閉而不影響子窗體的方法,很實(shí)用的功能,需要的朋友可以參考下2014-08-08
探討:如何使用委托,匿名方法對(duì)集合進(jìn)行萬(wàn)能排序
本篇文章是對(duì)使用委托,匿名方法對(duì)集合進(jìn)行萬(wàn)能排序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
c# 9.0新特性nint和Pattern matching的使用方法
這篇文章主要介紹了c# 9.0新特性nint和Pattern matching的使用方法,文中講解非常細(xì)致,幫助你更好的學(xué)習(xí)c# 9.0,有需求的朋友可以參考下2020-06-06

