2014/03/28

19. [Unity 3D 介面 - 中文教學] Navigation 尋路追蹤系統教學 (1)

現在很多遊戲都給予玩家角色自動尋路功能,
比如說當玩家接收到指令要找尋某位NPC (Non-Player Character)時,
可立即在非手動情況下,
角色直接自動位移至NPC身旁。

Unity在這部分也提供了此功能,
就讓我們簡易的來試試看吧!!!!

1. 透過Cube和Sphere建造一個場景如下:
紅色Cube - Player,
藍色Sphere - NPC。

2.玩家(Player)給予Component(屬性)→Navigation(導航)→Nav Mesh Agent
注意:只有玩家角色需要給予Nav Mesh Agent屬性!!!!!其餘物件無需。



Nav Mesh Agent(導航參數):
• Radius(半徑):物體的半徑
• Speed(速度):物體行走最大速度
• Acceleration(加速度):物體行進的加速度
• Angular Speed(角速度):物體行進轉向時的角速度
• Stopping Distance:當物體接近目標物多少距離後停止
• Obstacle Avoidance Type(躲避障礙物類型):None=不躲避障礙物;等級越高,躲避效果越好,消耗電腦效能也越多。

3. 選取所有地板(Floor)與牆(Wall)。

4. 給予場景的物件Window→Navigation,
所有要算路徑的場景選取後,點選NavigationObject
Navigation Static”打ν”。

Bake導航烘培數:
• Radius():物體小,烘培的巡路大,也越靠物體邊緣。
• Height():烘培的巡路面與物體度。
• Max Slope(斜坡):大可斜坡度。
• Step Height():

5. 接著點選Navigation屬性面板→再點Back。
Radius:半徑
Height:高度
Step height:台階高度

6. 撰寫程式碼:(程式碼拖曳給隨意物件)
var player:NavMeshAgent; //帶有NavMeshAgent屬性的物=Player
var target:Transform; //NPC物件

function Update () {
player.destination=target.position; //玩家終點位置=NPC所在位置

}

記得再擺放上述程式碼的物件中,補上Player和NPC物件唷!!

10. [Unity 3D 介面 - 中文教學] Light 光源
11. [Unity 3D 介面 - 中文教學] Unity 4.2.1以上版本發佈Android問題!!!!"Unable to find suitable jdk installation Please make sure you have a suitable jdk installation.Android development requires at least JDK 6 (1.6)"
12. [Unity 3D 介面 - 中文教學] Particle System 3.5版本以前的粒子系統 (上)
13. [Unity 3D 介面 - 中文教學] Particle System 新版-粒子系統 (蝙蝠"超音波"教學)
14. [Unity 3D 介面 - 中文教學] Trail Renderer 尾跡模擬