Unity3D實現(xiàn)打磚塊游戲
本文實例為大家分享了Unity3D實現(xiàn)打磚塊的具體代碼,供大家參考,具體內容如下
基于unity2017
1、 使用Plane創(chuàng)建初始地圖
(層級菜單[Hierarcy]-> 3D Object -> Plane)
2、將Plane命名為Gound
3、 更改Scale
x = 2,y = 2,z = 2,將Plane變?yōu)樵瓉淼膬杀?/p>
4、在Assest下新建一個文件夾并命名為Material
用于存放材質
5、創(chuàng)建材質
(右鍵 -> Create -> Mateial),并命名為Gound
6、設置材質的貼圖
1).材質的貼圖
2).金屬度
3).光滑度
7、設置墻壁
1).在Assets中創(chuàng)建一個Prefab目錄。
2).在層級目錄中創(chuàng)建一個Cube,并將其設為Prefab,設置為Prefab主要是便于整體修改。
3).創(chuàng)建一個空組件,將Cube作為空組件的子組件,并將空組件命名為Bircks
4).為Prefab的Cube組件添加Rigibody屬性(物理屬性) (點擊add Component搜索 Rigibody)
5).使用Ctrl + D 復制方塊 與 Ctrl + 左鍵 按單元格拖動方塊
8、創(chuàng)建子彈
在prefab下創(chuàng)建Sphere,同時添加Rigibody屬性
9、添加子彈飛出腳本
1).在Assets下創(chuàng)建Script文件夾用于存放腳本
2).右鍵創(chuàng)建C#腳本,命名為Shoot
3).將Shoot腳本賦予給相機(Main Camera)只需要將腳本拖到Main Camera組件上就可以添加腳本了
4).編輯腳本
public GameObject buttle;//用于獲得子彈對象 public float speed = 20F; ? ? // Use this for initialization ? ? void Start () { ? ? } ? ? // Update is called once per frame ? ? void Update () { ? ? ? ? //當鼠標按下左鍵時觸發(fā) ? ? ? ? if (Input.GetMouseButtonDown(0)) ? ? ? ? { ? ? ? ? ? ? //創(chuàng)建子彈對象 ? ? ? ? ? ?GameObject gb = GameObject.Instantiate(buttle,transform.position,transform.rotation); ? ? ? ? ? ?//創(chuàng)建剛體對象 ? ? ? ? ? ?Rigidbody rg = gb.GetComponent<Rigidbody>(); ? ? ? ? ? ?//設置子彈初始速度 ? ? ? ? ? ?rg.velocity = transform.forward * speed; ? ? ? ? } ? ? }
5).賦予腳本Public屬性值
只要腳本聲明為public的字段,就可以從外部直接得到,這時將準備好的Prefab的Shpere子彈賦值給Buttle
10、創(chuàng)建鏡頭移動腳本
方法同上,創(chuàng)建一個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"); //控制水平移動 ? ? ? ? float v = Input.GetAxis("Vertical");//控制垂直移動 ? ? ? ? //設置攝像機位置 ? ? ? ? transform.Translate(new Vector3(h, v, 0) * Time.deltaTime * speed); ? ? } }
11、結束
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
使用MSScriptControl 在 C# 中讀取json數(shù)據(jù)的方法
下面小編就為大家?guī)硪黄褂肕SScriptControl 在 C# 中讀取json數(shù)據(jù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01解決C#中Linq GroupBy 和OrderBy失效的方法
最近發(fā)現(xiàn)了一個問題,在服務器端的Linq GroupBy 和OrderBy居然不管用,后來終于解決了所以現(xiàn)在分享給大家,有需要的朋友們可以參考借鑒。2016-09-09c# 9.0新特性nint和Pattern matching的使用方法
這篇文章主要介紹了c# 9.0新特性nint和Pattern matching的使用方法,文中講解非常細致,幫助你更好的學習c# 9.0,有需求的朋友可以參考下2020-06-06