1.Unity3D介紹android
Unity3D是跨平臺(IOS、Android、Windows Phone、Windows、Flash、XBOX360、PS三、Wii等)遊戲引擎,能夠開發2D、2.5D、3D遊戲。appstore手機上有1500+款用Unity3D開發的遊戲。ios
什麼是遊戲引擎?開發簡單、高度封裝(OpenGL、DirectX)。其餘遊戲引擎: Cocos2d、UDK、 Unreal Engine 三、 Quest3D 等。程序員
2.爲何使用Unity3D?跨平臺;費用便宜(非開源,有免費版)網絡
3.遊戲開發常識app
遊戲術語:函數
手遊(新增加點);網遊(捉迷藏OL,U3D);端遊(須要下載客戶端);頁遊(WebGame)測試
FPS(First Person Shoot/Frame Per second);MMO( Massively Multiplayer Online,大型多人在線);RPG(虛擬人生,浪漫莊園)ui
2.5D(用2D模擬出來的3D。中國2D網遊佔據8成市場);鎖定視角3D(視角固定,不足夠炫,可是不頭暈,開發難度低,建模建3面便可)spa
第三人稱;第一人稱;代理
單機遊戲;網絡遊戲:大公司使用自主引擎,中小公司使用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()調試,優秀程序員的素質。