1.Unity3D介紹
Unity3D是跨平台(IOS、Android、Windows Phone、Windows、Flash、XBOX360、PS3、Wii等)游戲引擎,可以開發2D、2.5D、3D游戲。appstore手機上有1500+款用Unity3D開發的游戲。
什么是游戲引擎?開發簡單、高度封裝(OpenGL、DirectX)。其他游戲引擎: Cocos2d、UDK、 Unreal Engine 3、 Quest3D 等。
2.為什么使用Unity3D?跨平台;費用便宜(非開源,有免費版)
3.游戲開發常識
游戲術語:
手游(新增長點);網游(捉迷藏OL,U3D);端游(需要下載客戶端);頁游(WebGame)
FPS(First Person Shoot/Frame Per second);MMO( Massively Multiplayer Online,大型多人在線);RPG(虛擬人生,浪漫庄園)
2.5D(用2D模擬出來的3D。中國2D網游占據8成市場);鎖定視角3D(視角固定,不足夠炫,但是不頭暈,開發難度低,建模建3面即可)
第三人稱;第一人稱;
單機游戲;網絡游戲:大公司使用自主引擎,中小公司使用Java開發的 smartfoxserver 、C#開發的Photon(底層C++) 等;
運營商、游戲代理、渠道商:開發商自己要處理推廣、支付、打擊盜版等,一般和渠道商合作分成。比如《捕魚達人》android版90%收入來自渠道。Android手機游戲開發的困境,渠道太多,N多打包;
游戲公司分工:策划;美工;程序員;測試;客服等。黑話:主程、主美
4.Unity3D基本使用
Hierarchy中Create一個Cube立方體,在Inspector中修改它的Position XYZ為0;
添加一個光源照亮場景Directional light,Position XYZ為(0,2,2);
修改攝像機MainCamera(攝像機看到的就是屏幕看到的)的Position為(0,2,-6),看起來清楚一些
Project中Create一個C# Script,編寫一個拖動Cube旋轉Cube的功能。
把腳本拖到Cube上(拖到Hierarchy中比較准確)。
代碼如下:
using UnityEngine; using System.Collections; public class CubeControl : MonoBehaviour { //unity3D中常用的幾種系統自調用的重要方法 //首先,我們有必要說明一下他們的執行順序: //awake--start--update--fixedupdate--lateupdate--OnGUI--reset--onDisable--onDestory // Start僅在Update函數第一次被調用前調用 void Start() { } //每一幀都調用Update()方法 void Update() { //可以在控制台輸出上一次調用Update()方法時所用的時間 //Time.deltaTime 它表示距上一次調用Update或FixedUpdate所用的時間, //因此通過它可以讓游戲對象按照一個常速進行旋轉,而不是依賴於它的幀頻: Debug.Log(Time.deltaTime); } //OnGUI是在渲染和處理GUI事件時調用。比如:你畫一個button或label時常常用到它。這意味着OnGUI也是每幀執行一次。 void OnGUI() { //bool isClick = GUI.Button(new Rect(30, 30, 100, 20), "按鈕");//返回是否點擊了按鈕,點擊返回true //if (isClick) //{ // //點擊一次,模型繞着x軸旋轉Time.deltaTime * 40度 // transform.Rotate(new Vector3(Time.deltaTime * 40, 0, 0)); //} //GUI.RepeatButton 是長按按鈕 bool isClick = GUI.RepeatButton(new Rect(30, 30, 100, 20), "按鈕");//返回是否點擊了按鈕,點擊返回true if (isClick) { //點擊一次,模型繞着x軸旋轉Time.deltaTime * 40度 transform.Rotate(new Vector3(Time.deltaTime * 40, 0, 0)); } } }
5.抗鋸齒:主菜單→Edit→Project Settings→Quality,AntiAliasing選為4x(越大越平滑但是越占資源)
6.體驗跨平台:File→Build Settings,構建為exe、flash,如果有android、ios等開發環境還可以構建為手機軟件。
7.腳本基礎
C#腳本不支持命名空間,腳本在Project中的顯示名稱不要加cs,類名要和cs名稱一致,所有類繼承自MonoBehaviour。跟具體游戲對象無關的腳本可以放到攝像機MainCamera中。不要不正確的給一個游戲對象設置多個腳本對象
初始化不要放到構造函數中,而是放到Start()方法中。
放到游戲對象中的腳本(實例化)可以在Inspector中修改屬性,get/set寫法屬性不被識別,直接public字段就能當屬性用,private或者不寫修飾符就是私有字段。
8.程序的調試
程序的運行時調試消息輸出:Debug.Log(),顯示到Console視圖(window→console打開)
項目的斷點調試:啟動MonoDevelop,主菜單Tools→Options→Unity→Debugger的Editor選擇Unity開發環境Unity.exe的程序的路徑;然后MonoDevelop打開項目(注意Unity不要同時打開這個項目),然后主菜單Run→Run With→Unity Debugger就可以啟動調試了。建議使用Debug.Log()調試,優秀程序員的素質。