Unity3D入門之Unity3D介紹以及編輯器的使用(1)

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()調試,優秀程序員的素質。

相關文章
相關標籤/搜索