999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Unity3D在Android游戲開發中的應用

2015-01-13 15:32:45林昕
新校園·中旬刊 2014年12期

林昕

摘 要:目前,作為3D游戲開發引擎和工具,Unity3D以其跨平臺和易用性等特性,被越來越多的公司所使用,并逐步成為開發首選工具。本文對Unity3D工具的基本使用做簡介,并通過構建一個簡單的3D游戲過程,介紹Unity3D在Android游戲開發中的應用,同時指出了該工具的廣闊應用。

關鍵詞:Unity3D;Andoird;游戲開發

一、引言

Unity3D是由Unity Technologies開發的一個讓開發者創建三維游戲、建筑可視化、實時三維動畫等類型互動內容的跨平臺的游戲開發工具,是一個整合度很高的專業游戲引擎。Unity可運行在Windows 和Mac OS X下,可發布游戲至Windows、Mac、Wii、iPhone和Android平臺,支持Mac 和Windows的網頁瀏覽。由于Unity3D的跨平臺和易用性等特性被越來越多的游戲開發公司所重視,并逐漸成為3D游戲開發的首先工具。

二、Unity3D界面介紹

Unity3D的基本界面層次清晰,幾個窗口實現了全部的編輯功能。主界面如圖1所示:

場景面板:該面板為Unity3D的編輯面板或者說是工作區;開發者可以將所有的模型、燈光、以及其他材質對象拖放到當前場景中,構建游戲中所能呈現的景象。

動畫面板:該面板可以呈現完整的動畫效果。顯示的內容取決于場景攝像機的設置。當游戲在場景面板中編輯好后,點擊運行按鈕,即可在動畫面板中查看游戲的實際運行效果。

項目面板:該面板主要功能是顯示該項目文件中的所有資源列表。除了模型、材質、字體等,還包括該項目的各個場景文件。開發者可以將游戲中使用到的所有資源導入到該面板中,使用時只要用鼠標拖動到場景面板即可。

層次面板:該面板主要功能是顯示放在場景面板中的所有的物體對象。該面板可以清楚查看在場景面板中出現的所有對象,很方便對場景中的對象進行管理。

對象屬性欄:又叫檢視面板,該面板欄會呈現出任何對象的屬性和組件,包括三維坐標、旋轉量、縮放大小、腳本的變量和對象等。

場景調整工具:可以改變在編輯過程中的場景視角、物體世界坐標和本地坐標的更換、物體的法線中心的位置,以及物體在場景中的坐標位置、縮放大小等。

三、接雞蛋游戲的制作流程

一款手機游戲的開發大致經歷立項、制定策劃大綱、制作游戲、檢測調試等過程。本文以接雞蛋這個小游戲為例,描述Unity3D開發Andoird游戲的基本流程。

游戲的基本玩法是雞蛋從屏幕上方落下,通過左右移動屏幕下方的木桶接住從上方落下的雞蛋,雞蛋落到木桶中及得分。游戲開發的基本步驟如下:

1.新建工程和場景

一個游戲就是一個項目,一個關卡就是一個場景,在Unity3D的文件菜單中選擇新建項目,為新項目命名,如圖2所示,新建項目的同時會新建第一個場景,保存新場景。

2.導入資源

游戲使用到的資源主要包括游戲對象模型、材質、貼圖、聲音等,模型可以在Maya,3DMax等3D建模工具中做好,導出為FBX格式的文件,然后在Unity3D的項目面板中選擇導入資源菜單導入游戲資源。接雞蛋主要模型資源有木桶、雞蛋、草地、白云等模型。

3.搭建游戲場景

將游戲資源從項目面板拖入到場景面板中進行游戲場景的搭建,通過移動、縮放、旋轉等工具將游戲資源對象按照一定的空間順序進行搭建,最終效果如圖3所示:

4.編寫游戲腳本

(1)桶移動:PlayerScript.cs

木桶的左右移動是通過PlayerScript.cs來控制的,Unity3D的輸入系統定義了水平方向的移動,并將X方向的數值限定在-2.5到2.5之間,這樣避免木桶超出屏幕范圍,代碼的主要部分如下:

void Update () {

float moveInput = Input.GetAxis("Horizontal") * Time.deltaTime * 3; // 木桶在水平方向移動

transform.position += new Vector3(moveInput, 0, 0);

if (transform.position.x <= -2.5f || transform.position.x >= 2.5f){ // 限制木桶的移動范圍

float xPos = Mathf.Clamp(transform.position.x, -2.5f, 2.5f); // 木桶在-2.5和2.5之間移動

transform.position = new Vector3(xPos, transform.position.y, transform.position.z);

}}

將PlayerScript.cs拖至木桶對象上,使得其成為木桶對象的腳本組件。

(2)雞蛋落下:EggScript.cs

雞蛋落下由EggScript.cs來控制,當雞蛋落至屏幕下方足夠低的地方的時候,雞蛋自動銷毀,以免占有資源,代碼主要部分如下:

void Update () {

float fallSpeed = 2 * Time.deltaTime;

transform.position -= new Vector3(0, fallSpeed, 0);

if (transform.position.y < -1 || transform.position.y >= 20) // 位置足夠低的時候銷毀對象

{Destroy(gameObject);}}

同樣將EggScript.cs拖至雞蛋對象上,使得其成為雞蛋對象的腳本組件之一。

(3)生成雞蛋:SpawnerScript.cs

雞蛋源源不斷的從屏幕上方落下,即是通過SpawnerScript.cs腳本來生成雞蛋,并且每隔0.3秒,雞蛋的生成速度會不斷的增加,主要代碼如下:

void Update () {

if (nextEggTime < Time.time)

{

SpawnEgg();

nextEggTime = Time.time + spawnRate;

spawnRate *= 0.98f; // 生成速度逐漸加快

spawnRate = Mathf.Clamp(spawnRate, 0.3f, 99f);

}}

void SpawnEgg()

{

float addXPos = Random.Range(-1.6f, 1.6f); // 水平位置由隨機函數產生的數值來生成

Vector3 spawnPos = transform.position + new Vector3(addXPos,0,0);

Instantiate(eggPrefab, spawnPos, Quaternion.identity); // 初始化雞蛋

}

同樣將EggScript.cs拖至雞蛋對象上,也使得其成為雞蛋對象的腳本組件之一。

(4)碰撞檢測,計分:EggCollider.cs

在木桶底部有一個球體對象,設置為碰撞器,來檢測雞蛋是否與其發生碰撞,或者說來判斷木桶是否接到了雞蛋,如果碰撞到則進行計分,代碼主要部分如下:void Awake()

void OnTriggerEnter(Collider theCollision) // 碰撞檢測

{

GameObject collisionGO = theCollision.gameObject;

Destroy(collisionGO);

myPlayerScript.theScore++;// 本游戲中碰撞的物體只可能是雞蛋,檢測到即銷毀雞蛋對象,同時計分

}

將EggCollider.cs拖至球體碰撞器對象上,也使得其成為碰撞器對象的腳本組件。

5.發布游戲

游戲代碼完成,測試無錯后就可以發布成Android應用程序了,選擇文件菜單>構建設置,在彈出的對話框中可以看見我們的游戲可以發布到多個平臺上,這里我們選擇Android,如圖4所示:

在發布設置中,設置游戲名稱、默認圖標、Android版本等基本信息,最后點擊構建按鈕即可生成最終的Andoid打包文件,導入手機中就可以運行了。

四、結束語

本文通過一個小游戲的制作過程,描述了Unity3D的基本界面、基本操作和使用Unity3D開發游戲的基本流程。Unity3D不但可以開發3D游戲還可以開發2D游戲和其他大型網絡在線游戲,同樣是畫面絢麗,效果出眾。

做為一個成熟的游戲引擎和開發工具,Unity3D其開發能力毋庸置疑,隨著iOS,Android手機的大量普及和3D網頁游戲的興起,Unity3D因其強大的功能、良好的可移植性和易用性在手機游戲和網頁游戲平臺上必將得到了廣泛的使用和傳播。

參考文獻:

[1]Ryan Henson Creighton.Unity 3D Game Development by[J].Example Beginners Guide,2010(9).

[2]金璽曾.Unity 3D手機游戲開發[M].北京:清華大學出版社,2013.

if (transform.position.y < -1 || transform.position.y >= 20) // 位置足夠低的時候銷毀對象

{Destroy(gameObject);}}

同樣將EggScript.cs拖至雞蛋對象上,使得其成為雞蛋對象的腳本組件之一。

(3)生成雞蛋:SpawnerScript.cs

雞蛋源源不斷的從屏幕上方落下,即是通過SpawnerScript.cs腳本來生成雞蛋,并且每隔0.3秒,雞蛋的生成速度會不斷的增加,主要代碼如下:

void Update () {

if (nextEggTime < Time.time)

{

SpawnEgg();

nextEggTime = Time.time + spawnRate;

spawnRate *= 0.98f; // 生成速度逐漸加快

spawnRate = Mathf.Clamp(spawnRate, 0.3f, 99f);

}}

void SpawnEgg()

{

float addXPos = Random.Range(-1.6f, 1.6f); // 水平位置由隨機函數產生的數值來生成

Vector3 spawnPos = transform.position + new Vector3(addXPos,0,0);

Instantiate(eggPrefab, spawnPos, Quaternion.identity); // 初始化雞蛋

}

同樣將EggScript.cs拖至雞蛋對象上,也使得其成為雞蛋對象的腳本組件之一。

(4)碰撞檢測,計分:EggCollider.cs

在木桶底部有一個球體對象,設置為碰撞器,來檢測雞蛋是否與其發生碰撞,或者說來判斷木桶是否接到了雞蛋,如果碰撞到則進行計分,代碼主要部分如下:void Awake()

void OnTriggerEnter(Collider theCollision) // 碰撞檢測

{

GameObject collisionGO = theCollision.gameObject;

Destroy(collisionGO);

myPlayerScript.theScore++;// 本游戲中碰撞的物體只可能是雞蛋,檢測到即銷毀雞蛋對象,同時計分

}

將EggCollider.cs拖至球體碰撞器對象上,也使得其成為碰撞器對象的腳本組件。

5.發布游戲

游戲代碼完成,測試無錯后就可以發布成Android應用程序了,選擇文件菜單>構建設置,在彈出的對話框中可以看見我們的游戲可以發布到多個平臺上,這里我們選擇Android,如圖4所示:

在發布設置中,設置游戲名稱、默認圖標、Android版本等基本信息,最后點擊構建按鈕即可生成最終的Andoid打包文件,導入手機中就可以運行了。

四、結束語

本文通過一個小游戲的制作過程,描述了Unity3D的基本界面、基本操作和使用Unity3D開發游戲的基本流程。Unity3D不但可以開發3D游戲還可以開發2D游戲和其他大型網絡在線游戲,同樣是畫面絢麗,效果出眾。

做為一個成熟的游戲引擎和開發工具,Unity3D其開發能力毋庸置疑,隨著iOS,Android手機的大量普及和3D網頁游戲的興起,Unity3D因其強大的功能、良好的可移植性和易用性在手機游戲和網頁游戲平臺上必將得到了廣泛的使用和傳播。

參考文獻:

[1]Ryan Henson Creighton.Unity 3D Game Development by[J].Example Beginners Guide,2010(9).

[2]金璽曾.Unity 3D手機游戲開發[M].北京:清華大學出版社,2013.

if (transform.position.y < -1 || transform.position.y >= 20) // 位置足夠低的時候銷毀對象

{Destroy(gameObject);}}

同樣將EggScript.cs拖至雞蛋對象上,使得其成為雞蛋對象的腳本組件之一。

(3)生成雞蛋:SpawnerScript.cs

雞蛋源源不斷的從屏幕上方落下,即是通過SpawnerScript.cs腳本來生成雞蛋,并且每隔0.3秒,雞蛋的生成速度會不斷的增加,主要代碼如下:

void Update () {

if (nextEggTime < Time.time)

{

SpawnEgg();

nextEggTime = Time.time + spawnRate;

spawnRate *= 0.98f; // 生成速度逐漸加快

spawnRate = Mathf.Clamp(spawnRate, 0.3f, 99f);

}}

void SpawnEgg()

{

float addXPos = Random.Range(-1.6f, 1.6f); // 水平位置由隨機函數產生的數值來生成

Vector3 spawnPos = transform.position + new Vector3(addXPos,0,0);

Instantiate(eggPrefab, spawnPos, Quaternion.identity); // 初始化雞蛋

}

同樣將EggScript.cs拖至雞蛋對象上,也使得其成為雞蛋對象的腳本組件之一。

(4)碰撞檢測,計分:EggCollider.cs

在木桶底部有一個球體對象,設置為碰撞器,來檢測雞蛋是否與其發生碰撞,或者說來判斷木桶是否接到了雞蛋,如果碰撞到則進行計分,代碼主要部分如下:void Awake()

void OnTriggerEnter(Collider theCollision) // 碰撞檢測

{

GameObject collisionGO = theCollision.gameObject;

Destroy(collisionGO);

myPlayerScript.theScore++;// 本游戲中碰撞的物體只可能是雞蛋,檢測到即銷毀雞蛋對象,同時計分

}

將EggCollider.cs拖至球體碰撞器對象上,也使得其成為碰撞器對象的腳本組件。

5.發布游戲

游戲代碼完成,測試無錯后就可以發布成Android應用程序了,選擇文件菜單>構建設置,在彈出的對話框中可以看見我們的游戲可以發布到多個平臺上,這里我們選擇Android,如圖4所示:

在發布設置中,設置游戲名稱、默認圖標、Android版本等基本信息,最后點擊構建按鈕即可生成最終的Andoid打包文件,導入手機中就可以運行了。

四、結束語

本文通過一個小游戲的制作過程,描述了Unity3D的基本界面、基本操作和使用Unity3D開發游戲的基本流程。Unity3D不但可以開發3D游戲還可以開發2D游戲和其他大型網絡在線游戲,同樣是畫面絢麗,效果出眾。

做為一個成熟的游戲引擎和開發工具,Unity3D其開發能力毋庸置疑,隨著iOS,Android手機的大量普及和3D網頁游戲的興起,Unity3D因其強大的功能、良好的可移植性和易用性在手機游戲和網頁游戲平臺上必將得到了廣泛的使用和傳播。

參考文獻:

[1]Ryan Henson Creighton.Unity 3D Game Development by[J].Example Beginners Guide,2010(9).

[2]金璽曾.Unity 3D手機游戲開發[M].北京:清華大學出版社,2013.

主站蜘蛛池模板: 精品久久777| 国产福利微拍精品一区二区| 亚洲va在线∨a天堂va欧美va| 四虎成人在线视频| 久久中文电影| 久久99热这里只有精品免费看| 国产一级α片| 色综合久久综合网| 黄色国产在线| 国产精品99r8在线观看| 波多野结衣一区二区三视频 | 国产剧情国内精品原创| 国产成人久久综合777777麻豆| 91精品免费高清在线| 麻豆AV网站免费进入| 国产主播在线观看| 久久人搡人人玩人妻精品 | 天天操天天噜| 波多野结衣无码视频在线观看| 国产乱子伦手机在线| 一本大道香蕉高清久久| 青草视频网站在线观看| 国产乱码精品一区二区三区中文| 久久99国产综合精品1| 99久久国产综合精品2020| 亚洲人成电影在线播放| 亚洲一区网站| 国产成人福利在线视老湿机| 国产欧美日韩另类精彩视频| 97se亚洲| 日本道综合一本久久久88| 日韩精品一区二区三区大桥未久| 国产区精品高清在线观看| 欧美激情,国产精品| 国产精品 欧美激情 在线播放| 欧美日韩精品在线播放| 九九这里只有精品视频| 亚洲国产中文在线二区三区免| 国产乱视频网站| 久久精品无码一区二区日韩免费| 国产区福利小视频在线观看尤物| 国模视频一区二区| 999精品免费视频| 国产丝袜精品| 色一情一乱一伦一区二区三区小说| 日韩av无码精品专区| 国产成人毛片| 最新亚洲人成无码网站欣赏网 | 国产高清精品在线91| 久久综合色天堂av| 亚洲国产日韩在线观看| 欧美一级一级做性视频| 久久伊伊香蕉综合精品| 69视频国产| 98超碰在线观看| 毛片一级在线| 日韩大乳视频中文字幕| 毛片基地美国正在播放亚洲| 一本久道久久综合多人| 日韩福利在线观看| 久久久久久久久18禁秘| 成人毛片免费观看| 天堂中文在线资源| 粉嫩国产白浆在线观看| 中文无码影院| 精品久久777| 国产在线观看第二页| 国产视频只有无码精品| 性喷潮久久久久久久久| 91破解版在线亚洲| 狼友视频一区二区三区| 国产v精品成人免费视频71pao| 中文毛片无遮挡播放免费| 台湾AV国片精品女同性| 亚洲精品视频免费观看| 国产精品99r8在线观看| 狠狠v日韩v欧美v| 综1合AV在线播放| 黄色片中文字幕| 国产国拍精品视频免费看| 国产日韩精品一区在线不卡| 中文字幕乱码二三区免费|