一
改變情境視圖角度的快速鍵:
按滑鼠中鍵平移視圖;
按滑鼠左鍵+Alt鍵旋轉視圖;
按滑鼠右鍵+Alt鍵或滑動滑鼠滑輪推拉視圖;
按F鍵可以快速鎖定選中的目標。
Unity只允許在空的檔案夾內建立新工程。
問題:指令碼名詞有空格的話,在菜單的【Component】->【Scripts】裡面找不到指令碼。
只有將關卡添加到Scenes In Build裡面才能被整合到最後編譯的遊戲中。
Debug.Log(“ 列印內容”);
Debug.LogError(“ 列印的內容顯示紅色”);
設定斷點:MonoDevelop -> Run -> Attach to Process -> Unity Editor
F5越過當前斷點。
【Open Editor Log】看資源分派情況。
我的開發環境是Windows 7下的Unity 4.3.4f1 + Visual Studio 2012。
發現【Extenrnal Tools】指定VS 2012無效,解決方案點這裡。
簡單來說就是:
1、在VS 2012的這個目錄Common7\IDE下面建立一個.bat檔案;
2、在這個.bat檔案裡面寫入start "" %*
3、在【Extenrnal Tools】指定這個.bat的路徑。
二
策劃需要對遊戲中的數值進行計算和評估,它是保證遊戲平衡性的關鍵。
關卡編輯工作主要都是在Unity的編輯器中完成的。
Unity程式員的主要工作就是編寫指令碼。
在Unity中,每個遊戲中的物體都可以稱為是一個遊戲體(Game Object)。
Unity中的遊戲可以擁有多個組件(Component)。組件可以是一個指令碼,一個模型,一個物理碰撞體,一張貼圖,一個粒子發射器,或是一個聲音播放器。有了這些組件,遊戲體就有了相應的功能,程式員可以通過編寫指令碼控制遊戲體及它所擁有的組件,從而實現遊戲的邏輯。
Unity不但能開發單人遊戲,也能開發多人遊戲。它內建了RakNet(一個網路遊戲開發包),適用於快速開發多人遊戲。
Unity支援幾乎所有高端的3D動畫軟體(如3ds Max、Maya等),將製作的模型和動畫匯出為FBX格式供Unity使用。
Unity中,幾乎所有的關聯操作都可以通過拖動的方式完成。
?【P18】Shader設定:
【Transparent】->【Cutout】->【Diffuse】,材質將帶有Alpha資訊;
【Transparent】->【Diffuse】,可以獲得半透明效果,但在某些情況會出現Alpha亂序的情況;
?【P18】【Windows】->【Animation】->【Create New Clip】
Material、Main Text.offset.v
選擇Main Camera,【GameObject】->【Align With View】是攝像機視角與當前視圖一致。
指令碼是實現遊戲邏輯的核心,它本身並不能獨立運行,它必須作為某個遊戲體的組件才能運行。
只有繼承自MonoBehaviour的類才能作為Unity指令碼組件使用。
自訂指令碼在功能表列中的位置:
[AddComponentMenu("MyGame/Player")]
Update函數每一幀都會被調用。
Input是一個封裝了輸入功能的類,它包括幾乎所有的鍵盤、滑鼠或觸控操作函數。
Time.deltaTime表示每幀的經過時間。
this.transform調用的是遊戲體的Transform組件。
Vector3的三個參數表示在x、y、z三個方向上的移動距離。
Start函數會在對象被執行個體化時自動調用一次。
MonoBehaviour的衍生類別不能使用建構函式初始化。
只有
public類型的屬性才能在編輯器視窗執行個體化。
Destroy函數將遊戲體銷毀。
對於需要重複使用的遊戲體,我們需要將其製作成Prefab。
Unity的遊戲體只能使用Instantiate執行個體化,必能使用new。
?【P29】
this.transform.Rotate用來旋轉遊戲體。Rotate的用法??
碰撞體【Box Collider】Is Trigger使其具有觸發作用。
剛體【Rigidbody】Use Gravity重力影響;Is Kinematic使遊戲體的運動不受物理類比影響。
所有需要參與物理計算的遊戲體都需要有一個剛體組件才能正常工作。
指定
Tag標識,【Edit】->【Project Settings】->【Tags】
用途:xx.tag.CompareTo("xxx")。
OnTriggerEnter()在碰撞體互相接觸時會被觸發。
virtual虛方法,可以在衍生類別中重寫這個方法。
override表示這是一個重寫的方法。
Awake繼承自MonoBehaviour,它會在遊戲體執行個體化時執行一次,並先於Start方法。
FindGameObjectWithTag獲得遊戲體執行個體。
Quaternion.LookRotation在初始化時朝向主角方向。
.uniytpackage檔案時Unity專用的資源套件。
Audio Source凡是需要發聲的遊戲體,必須有這個組件。
AudioSource.PlayOneShot(AudioClip) 播放聲音。
Random.value產生一個0.0到1.0之間的隨機數。
在情境中可以看到,但是在遊戲中不能看到的,放在一個Gizmos檔案夾裡面。
OnGUI是一個特殊的函數,專門用來畫UI介面。
Application.Quit用來退出當前程式。
Application.LoadLevel用來讀取下一個關卡。
預設在情境攝像機上有一個
Audio Listener組件,3D聲音的音量取決於聲音源與攝像機的距離。
Static Batching會將靜態模型整合,但有時會使遊戲尺寸變大,如果不清楚最佳化原理,建議謹慎使用這個功能。
?【51】
Rendering Path中可以設定3種渲染模式:
Deferred Lighting\Forward Rendering\Vertex Lit
文檔資訊
- 著作權聲明:自由轉載-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
- 原文網址:http://blog.csdn.net/cdztop/article/details/21840545