unity3d遊戲開發之我見,unity3d遊戲開發
遊戲引擎想必大家都有所耳聞吧,比如當你在喝著可樂,盯著電腦螢幕,看到遊戲情境內的角色在自己鍵盤滑鼠的控制之下,享受著這種遊戲的操作感,這種感覺之所以爽快,是因為他滿足了你自己的思維(我想幹什麼就可以幹什麼),慢著,今天我們不談論遊戲心理,我們今天談的是到底是什麼讓我們如此吸引而引人入勝呢?——遊戲引擎 眾所周知,遊戲引擎對於遊戲來說,那真的像跑車的引擎一樣,是遊戲表現的核心,現在為止,一些大型的遊戲公司都有自己開發或收購的遊戲引擎,比如Unreal(虛幻),暴雪自家的魔獸引擎,還有保守爭議的顯卡危機(呵呵,是孤島危機)的CryEngine,當然不同的引擎會有不同的效能表現和畫面風格,比如寫實的Unreal(左),和漫畫田園風格的魔獸(右). OK,那麼今天我就來推薦一下我所熟知的一款遊戲引擎——Unity3D 作為Unity的使用者,開發人員,我對Unity3D引擎的優異效能表現和高度跨平台性給予神一般的敬仰,他整合了MonoDeveloper的編譯平台,以C#和javascript為主要的編碼語言,貌似還有一個boo(鬼才知道這個語言),為了實現簡單代碼間類的互相操作,我們都選用C#作為統一的開發語言,而且Unity還對代碼的運行效率,資源的開銷提供了一個很好的分析工具() 而對於情境的編輯和代碼的編寫,我會在以後部落格陸續放出,下面給大家展示一個例子,相信你會對它有興趣的.來自【狗刨學習網】 我在Unity3D裡寫出一些代碼,實現監聽滑鼠滑輪的事件,繼而使得情境內的一個方塊的大小也隨之改變.列出代碼: Move.cs using UnityEngine; using System.Collections;
public class Move : MonoBehaviour { private float changSize = 0; void Update() { changSize += Input.GetAxis("Mouse ScrollWheel"); transform.localScale = new Vector3(1 + changSize, 1 + changSize,1 + changSize); } } 初始的方塊的大小是(1, 1, 1)() 運行結果:來自【狗刨學習網】 我們看到,方塊的大小被滑輪調整到了5倍左右.下面是資源消耗: 相信大家都已經看到了我的Move.Update()方法佔到了總資源的10%左右,這是個不小的開銷哦,我們的目的是讓Camera.Render獲得最大的資源比例,使得它渲染的幀數達到最大. 因此我們做一個最佳化,代碼更改如下:1 using UnityEngine; 2 using System.Collections; 3 4 public class Move : MonoBehaviour { 5 private float changSize = 0; 6 7 void Update() { 8 if(Input.GetAxis("Mouse ScrollWheel") != 0) 9 { 10 changSize += Input.GetAxis("Mouse ScrollWheel"); 11 transform.localScale = new Vector3(1 + changSize, 1 + changSize,1 + changSize); 12 } 13 } 14 } OK,我們這次再來看一下運行結果及資源耗費狀況 運行資源消耗結果: 立竿見影,我們看到Move.Update()已經控制在了1%左右,而Camera.Render也有所回升,說明我們的代碼確實在這樣的運行環境下起了意料中的最佳化作用。 左邊的觀眾,右邊的觀眾,前面的觀眾,你們是否感受到Unity3D的魅力,而它的魅力還不僅僅是這些,後面你們還會看到更加驚喜的內容,希望你們能夠喜歡上這個精緻而靈巧強大的遊戲引擎.來自【狗刨學習網】 |