1、如何正確的使用UNITY3D製作FPS游戲
第一部分:簡介
這個教程中,我們詳細了解下如何製作一個簡單的第一人稱射擊游戲(FPS)。其中將介紹一些基本的3D游戲編程的概念和一些關於怎樣如游戲程序員般思考的技巧。
前提
這個教程假定你已經熟悉軟體Unity基本操作,掌握了基本的腳本概念。
創建新工程
下載FPS_Tutorial.zip壓縮文件,解壓,在Unity中打開工程文件。
從Unity安裝目錄導入Standard Assets資源包。
導入工程後,你會在Unity工程面板中的「Standard Assets」文件夾下看見這些資源內容。當我們導入新資源時,最好安裝按照資源功能對其分組,例如:火箭、爆炸、音頻等。
設置游戲環境
導入資源後,你會注意到在工程面板中有許多文件夾。
工程面板中,從文件夾「Object/mainLevelMesh」中選擇「mainLevelMesh」。
在參數面板,FBXImporter選項中,你會發現「Generate Colliders」選項,勾選此選項。如果不做這一步,游戲中玩家會穿越地面直接掉下深淵(實際是開啟「碰撞」,產生交互)
把「mainLevelMesh」拖放到場景中。
場景中不需要添加燈光,這關全部場景已經全部應用了燈光貼圖。整個場景對所有燈光進行了燈光貼圖渲染,使用了「預烘焙陰影」。燈光貼圖對顯示效果有很大幫助,特別是復雜燈光環境。
下面可以在場景中添加一個角色了。
添加主要角色
下面在場景中增加一個可以操控的角色物體。Unity針對第一人稱射擊游戲預置了許多內置的控制器,在工程面板Standard Assets->;Prefabs下。
添加第一人稱控制器,點擊工程面板Standard Assets旁邊的小三角,彈出資源列表。找到Prefabs文件夾,點擊小三角形,彈出資源列表。把「First person controller」拖到場景里。
這時場景中會出現一個代表玩家的圓柱體,三個大箭頭代表物體在3D空間中的位置(如果沒有看見箭頭,選擇物體,按「W」鍵),白色面代表物體當前視角。現在FPS控制器處於默認視角位置,通過移動它可以改變游戲視野。把角色移動到游戲環境關卡地面上面的位置。
Main Camera現在已經沒有用處了,可以刪掉了。
點擊「Play」鍵,現在應該可以通過使用滑鼠和鍵盤在本關卡地形中四處移動了(游標或者「W,A,S,D」)
現在我們創建了一個非常簡單的FSP,下面我們給角色添加武器。
增加武器
下面我們將給游戲角色一個類似榴彈的物體,可以在游戲中發射。要實現這個功能,需要創建一些腳本語言來在Unity中告知這個武器如何動作。
那麼我們具體要實現什麼呢?我們要使游戲角色能在攝像機的任意位置開火。但是,我們還是首先來思考一下游戲角色和武器。游戲角色游戲中是第一人稱的視角,所以攝像機的位置與眼睛平行。如果玩家使用武器射擊,武器應該是在角色的手部位置開火而不是眼睛的位置。這樣我們就要增加一個「game object」(游戲物體)來代表榴彈發射器,同時把它放置在游戲角色手持武器時武器所處的位置。這樣就保證了開火的位置沒有問題。
創建武器發射器
首先,創建一個「game object」代表榴彈發射器。游戲物體是3D世界中的任一物體(角色、關卡、聲音),零件就是游戲物體的屬性。因此我們還需要對游戲物體添加零件:
從主菜單欄選擇GameObject>Great Empty,並在層級面板中(Hierarchy)命名為「Launcher」。注意,空物體在場景中是看不見的,只是用它來作放置飛彈發射器。
現在在場景中把視野推近到FPS控制器,便於我們放置武器發射器。
層級面板中選擇FPS控制器,確保滑鼠處於場景視圖中,按「F」鍵。使窗口以當前選擇的物體為中心。
層級面板中選擇發射器,主菜單欄選擇Game Object>Move to view。注意發射器如何移動到FPS控制器附近的。然後使用手柄,把發射器移動到大概角色手部的位置。
注意:可以通過設置這個物體的位置來設定游戲角色是左撇子還是右撇子,不需要寫代碼。
使Unity窗口模式是「2by3」模式(window>Layouts>2by3),點擊播放鍵(play)。確保層級面板中點選了發射器,四處移動角色,同時觀察場景窗口。你將發現發射器並沒有隨著角色一起運動(現在再次點擊播放鍵停止運行游戲)
下面來解決這個問題,層級面板中,把發射器拖放到FPS控制器下面的主攝像機上。彈出的對話框點擊「是」。再次運行游戲,觀察場景窗口,發射器已經和角色運動一致了。這樣我們就把發射器與攝像機關聯起來了。
創建飛彈
下面我們來創建在玩家點擊開火鍵時能夠發射出來的飛彈。
我們先用一個簡單物體-球體-代替飛彈。Unity主菜單欄點擊Assets>Creat>;Prefab創建一個預制(Prefab)物體,命名為「Missile」
創建一個球體(GameObject>Create Object>Sphere)
層級面板中,拖放球體到飛彈預制物體上(Missile),這時預制物體圖標會變化。你可以從層級面板中刪除球體。
技巧:游戲運行中產生的任何游戲物體都應該是預制物體(Prefab)。
編寫飛彈發射器腳本
FPS控制器是一個包含了幾個游戲物體和部件的預制物體。FPS控制器本身是一個只能沿Y軸旋轉的圓柱體,因此,如果我們直接把發射器腳本賦予FPS控制器的話,是實現不了上下開火的。所以我們把腳本賦予控制器中的能夠四周轉動的主攝像機。
下面我們來編寫第一個描述發射器行為的JavaScript代碼。
點擊Assets>Greate>JavaScript,創建一個空的JavaScript文檔。一個名為「NewBehaviourScript」資源將會出現在工程面板中,把它更名為「MissileLauncher」
技巧:通過Unity>;Preferences點擊External Script Editor,可以自定義外部腳本編輯器。
工程面板中創建一個「WeaponScripts」文件夾,放置我們所有的武器腳本。把MissileLauncher腳本和飛彈預制物體(Missile Prefab)拖到這個文件中。
我們來看看飛彈發射器的完整JavaScript腳本。
進一步思考一下,我們到底想實現什麼效果?我們要檢測玩家是否按了開火鍵,然後產生一枚飛彈,然後把它沿著玩家朝向的方向按照一定的速度發射出去。我們仔細的解剖一下腳本:
var projectile: Rigibody;
var speed=20;
function Update( )
{
這是腳本的開頭部分,定義了一些屬性,開啟了「Update」的功能
if(Input.GetButtonDown(「Fire1」))
首先我們要檢測玩家是否按了開火鍵,「開火1」映射的是滑鼠左鍵和當前配置的鍵盤上的按鍵(可以通過主菜單欄的Editor>;Project Settings>Input設定)
{
var instantiatedProjectile: Rigidbody=Instantiate(
projectile, transform.position,transform.rotation);
我們用變數來定義產生的物體。變數的類型是Rigibody(剛體),因為飛彈是具有物理屬性的。
Unity中產生新物體使用的函數是Instantiate,它有三個參數,分別是:產生的物體、產生物體的3D空間位置、物體的旋轉。它還有另一個語法結構,參照API手冊,這里我們只使用這種結構。
第一個參數,projectile,代表我們想創建的物體。那麼到底發射什麼物體?具體產生的物體是可以手動設定的。實現方法:把Projectile定義為函數的外部變數,這樣就可以在參數面板中顯示出來。發射的物體也可以通過代碼來創建,但如果你想使一個變數可調的話,還是用上面的方法。
第二個參數,transform.position,使產生的物體與發射器的空間位置一致。為什麼就是發射器呢?因為如果要使飛彈產生的位置沒有問題,腳本就要關聯給發射器。(transform讀取的transform數據就是被賦予腳本的游戲物體transform數據)
第三個參數transform.rotation,與第二個類似,只是它的值與發射器的旋轉值是一樣的。
代碼的下一部分使飛彈產生運動。為了實現運動,我們要賦予飛彈一個速度,但是在哪個方向上(X,Y,Z)產生速度呢?在場景中,點擊FPS控制器,出現運動箭頭(如果沒有出現,按「W」鍵),其中一個箭頭是紅色、一個是綠色、一個是藍色。紅色代表X軸,綠色代表Y軸,藍色代表Z軸。因為藍色指向的方向,與玩家面朝的方向一致,所以我們要在Z軸上給飛彈一個速度。
(Velocity)速度是instantiatedProjectile的一個屬性。我們怎麼知道的呢?因為instantiatedProjectile是剛體的一種,如果我們看看API手冊,我們就會知道速度是剛體的屬性中的一種。同時也看看剛體的其它屬性。要設置速度,我們就必須在各個軸向上設定數值。但還有個小問題。3D空間中的物體一般使用兩種坐標模型:本地坐標系和世界坐標系。在本地坐標系中,物體的軸向只與物體本身有關。在世界坐標系中,軸向是絕對的,例如:向上,對所有物體來講向上的方向都是一樣的。
Rigidbody.Vellocity剛體物體速度必須使用世界坐標系。因此,定義速度時,需要把本地坐標系中的Z軸(朝前的方向)向轉換成世界坐標系中的相應方向。可以用函數transform.TransformDirection,它有三個向量作為自變數。變數speed也應該定義成外部變數,便於後面在編輯器中直接調節數值。
最後,我們要關閉飛彈與游戲角色之間的碰撞。如果不這樣做的話,飛彈產生的時候就可能與角色發生碰撞。可以在API手冊IgnoreCollision下查詢詳細信息。
MissileLauncher.js全部完整代碼如下:
把腳本MissileLauncher賦予FPS控制器中的發射器。在層級面板中點擊發射器,檢查一下參數面板下面是否顯示了MissileLauncher script。
先前創建的飛彈的預制物體還沒有與腳本中的變數projectile創建關聯,我們需要在編輯器中創建一下。變數projectile只能與剛體關聯,因此,首先我們要賦予飛彈一個Rigidbody。
工程面板中點擊飛彈,然後從主菜單欄選擇Components>;Physics>Rigidbody。這樣將會給我們想開火發射的飛彈一個剛體屬性。我們必須確保想在游戲中發射的物體類型與腳本中外部變數要求的物體類型是同一類型的物體。
創建飛彈與腳本中變數projectile的鏈接。首先在層級面板中點擊發射器,然後把飛彈的預制物體從工程面板中拖拽放置在發射器參數面板中MissileLauncher script部分上。
運行游戲的話,你會發現點擊開火鍵可以發出一個受重力影響的小球了。
飛彈爆炸
下面,當飛彈與其他物體發生碰撞時,增加一個爆炸效果。要實現這個效果,我們要編寫一段新腳本賦予飛彈。
創建一個新腳本,命名為Projectile。拖放到工程面板的WeaponScripts文件夾下。
那麼我們想要腳本Projectile實現什麼樣的效果呢?我們要檢測飛彈是否發生碰撞,然後在碰撞點產生一個爆炸效果。代碼如下:
函數OnCollisionEnter內的程序代碼的作用是計算被賦予腳本的物體是否與其他物體發生碰撞。
在函數OnCollisionEnter中我們主要是要實現在3D空間中飛彈發生碰撞的點產生一個新爆炸。那麼在何處了碰撞的呢?函數OnCollisionEnter就有個記錄這個信息的功能。碰撞發生的點的信息儲存在變數ContactPoint中。
這里我們使用函數Instantiate來創建一個爆炸。我們已經知道函數instatiate有三個參數:(1)產生的物體(2)物體的3D空間位置
(3)物體的旋轉。
第一個參數,後面我們將會賦給一個帶粒子系統的游戲物體。同時我們還想通過編輯器來實現這個功能,所以我們把變數設置為外部變數。
第二個參數,爆炸產生的點的位置,就是碰撞發生的位置。
第三個參數,爆炸旋轉的設置,需要解釋一下。我們需要爆炸體的Y軸方向與飛彈和其他物體發生碰撞的那個表面的法線方向一致。這就是說如果是牆面那麼爆炸就面向外,如果是地板就朝上。那麼實際上我們就是要使爆炸體在本地坐標系的Y軸與飛彈與之碰撞的物體的表面法線方向(世界坐標系)一致。
最後,我們要讓飛彈碰撞後就從游戲中消失,通過函數Destroy()實現,它的參數是gameObject(gameObject代表被賦予這個腳本的物體)。
Projectile.js全部代碼如下:
把腳本賦予飛彈預制物體(Missile prefab)。
下面我們要創建飛彈發生碰撞時所產生爆炸的爆炸效果物體。
首先,創建一個新的預制物體(命名為Explosion)用來存放爆炸效果資源。
標准資源包中(standard asset)有個不錯的爆炸預制物體,粒子系統和燈光都設置好了。把這個爆炸預制物體(在Standard Assets/Particles/explosion中)拖放到層級面板。
調節這個爆炸效果的各個參數直到你覺得滿意,然後把它從層級面板中拖放到工程面板中的爆炸預制物體(Explosion Prefab)中。
現在把爆炸配置給飛彈:
點選飛彈預制物體(Missile Prefab),在參數面板Explosion變數欄,拖放工程面板中的爆炸到上面。
定義爆炸的行為
下面我們要再創建一個腳本來定義爆炸自身的特性。
創建一個新的腳本-Explosion,放在Weapons文件夾中,雙擊腳本進行編輯。
腳本中另一個常用函數稱為Start()。當它配置給的物體是在游戲中產生的時候,函數Start()中的代碼只被執行一次。我們要實現的效果就是在一定時間後,在游戲中刪除爆炸。我們通過函數Destroy()的第二個參數實現,它的作用是定義執行刪除前的時間長度。
變數explosionTime設置成外部變數,方便調節。
新建腳本插入以上代碼時,要刪除函數Update()。
把腳本Explosion賦予給爆炸預制物體。
音效
目前的游戲世界太安靜了,讓我們給爆炸效果增加點音效。
首先,給爆炸預制(Prefab)添加一段音頻。
給爆炸添加音效前,我們首先要添加一個音源部件(Audio Source),在主菜單點擊Component—Audio—Audio Source。你會發現音源部件有一個Audio Clip的屬性。
把「RocketLauncherImpact」音效添加給爆炸預制體的AudioClip外部變數。Unity支持多種音頻格式。
運行游戲,發射飛彈的時候就有聲音了!
添加圖形界面
下面我們來添加GUI,有點像頭部顯示設備(HUD)。我們要做的GUI非常簡單,就一個準星。
添加一個準星:
工程欄中創建一個GUI的文件夾。
創建一個新腳本,命名為「準星」(Crosshair),拖到GUI文件夾。
Crosshair中寫入下面的腳本:
首先我們設定了兩個變數。第一個變數是定義我們將要用可選的方式來選擇圖形紋理。第二個變數定義了一個方形區間,它是圖形紋理在屏幕上的位置范圍。
在start( ) 中函數用來設定圖形紋理在屏幕上的位置。函數中,有四個參數,用來定義方形區域的大小和位置。第一個參數定義了方形區域的左邊框,第二個是底邊框,第三和第四個參數定義了寬和高。
OnGUI( )函數中,使用GUI類程序來讓圖形顯示在屏幕上。DrawTexture( )函數的參數position和crosshairTexture將使準星顯示在屏幕的中央位置。
保存腳本。
創建一個新的空物體,命名為「GUI」。
把腳本「Crosshair」賦予給GUI物體。
點選GUI物體,把在文件夾Texturelaim下的欲使用的圖形拖放到參數面板變數Crosshair Texture中。
運行游戲,屏幕中就會有準星顯示了。
物理特效:
現在,我們想要游戲中的物體效果越真實越好,這是通過添加物理特效實現的。在這一節中,我們將在環境中添加一些物體,他們能被飛彈擊中後有相應的反應。首先有幾個新概念要解釋下。
校正(Update)
先前,我們在函數Update()中寫入代碼,這樣可以在每一幀都執行其中的代碼。其中有個例子是檢測玩家點擊開火鍵。幀速並不是一個固定值,它是根據場景復雜度等因素來定的。各幀之間的時間差會導致不穩定的物體反應。因此,如果想在場景中添加有物理反應的物體(剛體等),代碼就應該寫在函數FixedUpdate()中。Unity中deltaTime的值用來測定渲染兩個連續幀的所用時間。
一般而言,函數Update與FixedUpdate之間的區別如下:
Update()-其中的代碼通常用於角色行為、游戲邏輯等。這個函數中的deltaTime值並不是固定的。
FixedUpdate()-其中的代碼通常用於剛體物體(物理屬性的行為)。函數中deltaTime的值通常是固定的。
FixedUpdate函數被調用的頻率是主菜單中Edit-Project Settings-Time的FixedTimestep屬性確定的,當然也是可以更改的。第二個屬性Time Scale是讀取每秒的幀速和相應的倒數值。
技巧:定義FixedTimestep值時,要注意把握好一個平衡:值越小,物理效果越真實越好,但影響游戲運行速度。應該同時確保游戲運行速度和物理效果的真實性。
最後說一下yield,它相當於暫停當前正在執行的函數。
回到游戲,我們想實現的效果:
使玩家可以發射飛彈(已經實現了)。
如果飛彈與其它剛體物體發生碰撞,檢測其范圍類是否有其它被賦予剛體屬性的物體。
對爆炸沖擊力范圍內的每個剛體物體,均給予一個upwards方向上的力,使它們對飛彈產生反應。
讓我們看看修改後的爆炸腳本(Explosion Javascript)
首先檢測下飛彈落點周圍是否有帶碰撞器的物體。函數Physics.OverlapSphere()有兩個參數:3D位置和半徑值,然後返回一組檢測到的在半徑內的碰撞器的數組。
一旦得到這些數組後,就會對每個對應碰撞器的剛體物體一個在特定方向上的力。
然後我們在飛彈的炸點處,向上的方向增加一個力(ExplosionPower)。但是,爆炸效果是隨著距離而遞減的,作用力大小不能在整個半徑內都一樣。圓周位置的剛體物體受到的作用力應該比炸點中心處小。函數把這種效果也考慮在內的。通過調節外部變數explosionPower和explosionRadius的值,可以較容易的得到想要的效果。
2、有沒有推薦的unity3D入門的書....
我入門是買的這本書,看了一個月,里知面所有的例子、代碼我都敲道過一遍的,勉強入門。
Unity3D 游戲開發回_宣雨松著_人民郵電出版社
下面是網上PDF版本,推薦購答買正版。
http://pan.baidu.com/s/1CAWR5
3、Unity3D和UE4各有什麼優劣?如果想要用UE4開發比較完整的游戲,要學習哪些東西?
Unity優點
手游的第一選擇,網站上有很多的教程和文檔(特別對於入門級開發者);
使用C#和JavaScript編碼(C++可以在特定領域使用,但並不推薦);
比較友好,可用插件較多,開發效率高;
簡易且直觀的UI界面及易上手學習設置;
適用用低配置的硬體。
Unity不足
相比Unreal Engine4(UE4)3D畫質不是最好的;
材質Shader復雜;
源代碼不公開;
Unity免費,Unity Pro和Unity iOS Pro僅提供30天全功能試用期;
UE優點
入門級的開發者可以在網上找到很多教程和文檔;
有專用的設計資源和優化公司,打造高端和沉浸式VR;
使用藍圖(可視化編程)。拖拽節點和定製C++代碼。然而,並非聽起來這么容易,藍圖有自身的學習曲線;
免費;
可預先構建框架,快速創建環境和粒子系統,百萬級渲染;
更好的畫質,材質編輯器較好;
引擎的源代碼可以從Github開源社區下載,意味著開發者實質上可以修改任何任何東西,包括物理引擎、渲染和圖形用戶界面。
UE不足
C++(僅限於初級開發者不熟悉這門語言);
載入時間比較久;
實時處理較差。
總的來說,兩種引擎是開發VR的主流引擎。Unity 3D相對比較輕便,更適合開發輕量級的體驗或Demo。但是,它能具有更好支持VR功能。UE4則是重量級。Unity看起來更適合開發者,UE4更適合對於動畫,美術感興趣的設計師。選擇引擎主要還是看要開發什麼樣的項目。根據項目再去看需要什麼樣的引擎。如果你有足夠的時間,可以嘗試兩種開發引擎,然後做出適合自己的選擇。
4、為什麼很多動作游戲都是 Unity3D 開發?相比 Cocos2d-x 更容易嗎
開發2d手游用Cocos2d-x好,原因如下:
Cocos2d-x原本就是基於cocos2d應用完成的,可以說是cocos2d的另一個版本,但是因為cocos2d-x是基於C++語言編寫的,而cocos2d則是基於Object-C語言編寫的並且只能運行在ios和mac操作系統中,C++的開發者必然多於Object-C;另外一個重要原因則是,cocos2d主要方向在於引擎的構架設計,重在引擎本身,而cocos2d-x則主要處理跨解決方案。
目前cocos2d-x主要維護三個版本,一個是原生的C++版本,一個是支持windows phone 7的C版本,一個是支持HTML5的JS版本,當然也有我們所開發的cocos2d-x for win8 metro的版本可以支持windows 8 metro風格游戲開發,通過這幾個版本幾乎可以跨目前大部分主流的。一次開發,多復用,無論從成本還是效率上考慮都是最佳的選擇,這畢竟是前兩年最主流的話題,當時大家都在尋找方案,目前cocos2d-x可以滿足大家的方案需求;要說缺點,也就是cocos2d-x暫時還沒有類似unity3d一樣的好工具來開發游戲,不過小的,單一的工具倒是很多,同時也了解到cocos2d-x團隊也在計劃向這個方向發展,將來會提供更多的工具,讓游戲開發更容易。甚至是我們自己也可以製作一些工具。
5、Unity3d游戲開發入門難不難
學習Unity3d有前途、有出息,當然也有競爭,有競爭說明比較熱門。2018年BOSS直聘發布一季度報告,互聯網行業平均月薪過萬!Unity3d游戲開發入門難不難?這就因人而異了,要是自學就比較難了。
在崗位上,占據人才吸引力指數前十的以互聯網技術類崗位為絕對主體,C++成為最熱門崗位。Hadoop、Golang受大數據、區塊鏈等行業熱度飆升影響,人才吸引力指數大幅上升,進入三甲。
所以,Unity3d游戲開發工程師一直是游戲公司常年招聘的高薪崗位,甚至經常出現互相"挖人"的現象。
現在游戲開發都是用跨平台的游戲引擎,主流就是Cocos2dx和Unity這兩類游戲引擎的開發有1-2年經驗的大概是10-15k之間,3年以上經驗的是15k-30k之間,其實也沒用明顯的界定,因為裡面的崗位很多的,有手游開發工程師,手游開發主管,手游研發經理,手游研發總監,手游產品經理,首席技術官,產品總監。
不過,這種獨立開發工作量巨大,涉及知識面也很廣,基本上沒有什麼系統學習的道路。大多數獨立游戲開發者都是用到什麼去學什麼。能夠復用的技能只有諸如代碼的熟練度,引擎熟悉程度,美術功底這些。這里能給出的建議就是先去熟悉C#語法與Unity引擎的使用方法。
在此基礎上根據游戲所需要的功能,針對性的學習別人的實現思路和方法,比如RPG里的人物對話,戰斗模式等等,網上能找到很多一個完整RPG游戲的視頻教程或者是源碼,提取其中自己需要的部分,學習的方向大致是基於自己游戲的設計方向。
對於Unity ,我還想告訴大家的是Unity分為個人免費版以及專業版,免費版其實已經可以使用引擎的絕大部分功能,但是會少了那些能讓游戲賺錢的功能,比如什麼雲儲存服務,游戲優化服務等。專業版需要支付1500美元或是以每個月75美元訂閱,提供最為完善的游戲製作服務。
6、Unity3d獲取游戲對象的幾種方法
根據自己的理解寫一點吧,純手寫。第一題:
1,腳本中定義public變數,然後在檢視面板(inspector)中拖拽賦值獲取
2,使zhidao用GameObject.Find+游戲物體名字獲取如:GameObject.Find("cube");
3,使用GameObject.FindGameObjectWithTag或者GameObject.FindWithTag+游戲物體版標簽的方式權獲取
3,很少用的一個FindObjectOfType+游戲對象類型獲取,例如:GUITexture s = FindObjectOfType(typeof(GUITexture));
4,(這個應該也算)對於實例化(克隆)出來的游戲物體,可以直接獲得控制全:例如:
game =(GameObject) Instantiate(prefab,transform.position,transform.rotation);
第二題:名字和標簽主要作用是識別物體。標簽還可以對場景中的游戲物體分類(layer:層也有這個功能)
7、unity3d開發的游戲有哪些
市面上只要是手機3d游戲,不敢說全部,大部分都說u3d開發的。
比如:爐石傳說,我叫mt,天龍八部hd,等
8、哪家的unity3d游戲資源包比較全面?
paws3d上的就很全,各個類型都有
9、哪些游戲是用unity3d做的?謝謝了,大神幫忙啊
網頁游戲
2012年 坦克英雄(網頁游戲)
2012年 新仙劍Online
2012年 蒸汽之城
2012年 絕代雙驕
2012年 Touch
2012年 縱橫無雙
2012年 將魂三國
2012年 天神傳
2012年 QQ樂團
2012年 北歐英靈傳
星之戰記
騎士的遠征(已停止運營)
萌戰記
推倒Online
格子RPG
圖騰王
爭鋒OnLine
噴噴戰機(已停止運營)
魔偶給我沖
豬仙
木乃伊OL (The Mummy Online)
魔晶星球
將神
天寵島
Kartuga
極限摩托車2 (Trial Xtreme 2)
槍戰世界(OffensiveCombat)
夢幻國度2
UberStrike
Kartuga
手機游戲
Angry Brids Epic
爐石傳說
酷酷愛魔獸
搗蛋豬(Bad Piggies)
神廟逃亡2(Temple Run 2)
武士2: 復仇
亡靈殺手:夏侯惇
蠻王記
極限摩托車2 (Trial Xtreme 2)
神廟逃亡:勇敢傳說(Temple Run:Brave)
Bladeslinger
火車危機(Train Crisis)
血色屋頂(Blood Roofs)
獵鹿人(Deer Hunter Reloaded)
果凍防禦(Jelly Defense)
ChopChop Tennis
9號計劃之地下雅利安
暗影之槍:死亡禁地 (Shadowgun: DeadZone)
Komodo Crunchtime:Ultimate Sup
The Drowning
The Room Pocket
三國之殺場
王者之劍
Rochard
Momonga彈珠冒險記
Tap Sonic Star
死亡扳機 (DEAD TRIGGER)
公路戰士(Road Warrior)
極速飛盤 Frisbee Forever
口袋RPG (Pocket RPG)
機器人大戰 (Roboto)
絕命武裝 (Bravo Force:Last Stand)
阿爾龍:劍影 ( Aralon:Sword and Shad)
街頭摔跤 ( Street Wrestler )
繆斯(M.U.S.E.)
瘋狂的公牛(Bull Dozer)
year walk
Jack Lumber
神廟逃亡:魔境仙蹤(Temple Run Oz
血之榮耀:傳奇 ( Blood & Glory 2 : Le)
繩索救援 ( Rope Rescue )
子彈時間(Bullet Time)
松餅騎士(Muffin Knight)
狂奔弗雷德 (Running Fred)
荒謬劇場 (Theatre of the Absurd)
紙片怪獸
Create! Pottery
愚蠢的僵屍 (Stupid Zombies)
Bag It!
攻城大戰 (Aiegecraft)
飆車戰警 (Smash Cops)
AVP: Evolution
崩壞學園(The end of school)
天天飛車
Alien Hive
Darklings
全民炫舞
單機游戲
搗蛋豬(Bad Piggies)
軒轅劍六
御天降魔傳
凡人修仙傳單機版
雨血前傳:蜃樓
模擬外科2013
新劍俠傳奇
軒轅劍外傳:穹之扉
Sc競技飛車
你看行不。。。?
10、unity3d游戲開發 新手怎麼跟著做游戲
一、從語法到技術循序漸進
如果你原先Java學透了,對C#語法是沒多大壓力的。(當然,常用函數需要重新記),不過我猜不是這樣。
以下是兩大分支:
———職業向———
如果你是想以U3D作為職業的話,「正規」的U3D開發是非要寫代碼不可的,慢慢從頭開始學吧。
1、先學C#語法,了解了語言基本常識,變數常量,循環判斷,類對象函數,基本數據結構;
2、然後逐漸深入到面向對象思想,父類子類,繼承重載,上轉型,統一建模語言,設計模式;
3、都差不多了,捎帶著看點兒復雜數據結構,高級演算法,編程規范,軟體工程什麼的,這幾樣得你前面都學會了再碰。
學這些東西,如果你全力學習,一年半載的勉勉強強吧,看個人悟性,這階段是完全是碰不e68a847a6431333363393661到U3D的,而這階段打的基礎好不好,就決定了以後你是三流程序還是二流以上。
等C#搞清楚了,編程邏輯思維訓練好了,再去U3D上面找到Unity的API庫,找幾本有代碼例子的書,抄著做,隨著使用逐漸就會了,這個階段和背英語單詞沒啥區別,就是常用,記住,就行。
學會這部分了,見到代碼沒有不認識的了,就能去個公司打個雜了。這個階段,也差不多是個半年吧。
然後,常用的架構模式,常用的插件,熟練的DEBUG技術,理解需求的能力,游戲設計能力,這些東西都只能在實際工作中一點一點坑出來了。
PS:當然如果你想系統快速學習,可以來奇酷呀,資深經驗的老師帶你學習,從基礎到進階到項目實踐,比自學快多啦。