有不少人是從UE3 接觸到Unreal,若是你也對UE3很是瞭解,便能很快的上手UE4。可是,UE4的開發模式仍是有所不一樣的。java
1.談談過往,UE1和UE2。程序員
我知道在那個時候我們同樣揮霍美好的童年在玩遊戲而不是作遊戲,固然作遊戲更揮霍你的青春XD編程
UE1和UE2是爲FPS設計的,使用UnrealScript來進行編程。說實話UnrealScript是最好的學習面向對象編程的語言。服務器
2.UE3網絡
添加了kismet。更多的模塊類。可是仍舊以FPS爲核心設計的編輯器
3.UE4函數
UnrealScript被下崗了,恭喜你我們下崗了~。變成了Blueprint,這時候關卡設計師們大聲叫好:」再也不須要求着愚蠢的程序員幫咱們實現系統了,哈哈「。工具
遊戲類型隨意,Paper2D讓你輕鬆製做2維遊戲。學習
還有許多工程實例供你學習。測試
好了我們向前看~
5.UnrealScript vs.C++ vs.Blueprint
這是許多人的疑問,看好戲吧
6.UnrealScript
①面向對象編程,和C,C++,Java比較像。可是仍是有區別的
②虛擬機編譯,這和java同樣,方便移植,缺點是速度慢效率低
③添加了許多有用的特性,State(說實話狀態寫AI簡直是最完美的方案,個人遊戲AI即是強依賴State).Timers(很是方便延遲執行),Delegates(容易引發崩潰,注意使用哦)
7.Blueprint
①對藝術家和設計師來講就是逃離噁心程序員」這不可能實現「的最有力武器,你能夠作到」你行你上啊~「。Kismet的夥計應該很容易上手
②仍是虛擬機,和UnrealScript是同樣的。所以,若是你很重視一個環節的執行效率,那麼就是用C++
③和UnrealScript同樣,但一些方面比UnrealScript強。例如你在添加Component中時能夠不用關閉編輯器直接修改模型。實在是工農大解放啊...
8.C++
①UE編程始終能夠基於C++,除非你用UDK,你這個窮鬼XD
②緊密結合虛擬機,由於Blueprint變量和方法有時是須要和C++交互的
③爲了替換UnrealScript爲開發者已經大幅提高了?
9.UE4基礎元素
①Actor
咱們又見面了Actor,Actor是在一個關卡中持續存在的,一般他包含幾個Actor組件。支持網絡複製和多人遊戲。
- Actor不包含位置,方向。這些東西在Root Component中存儲。對於UE3 中的Pawn也由PlayerCharacter繼承了,由於他有MovementComponent包含跳躍,速度等屬性
- 由SpawnActor() 生成
- 必須由Destroy來銷燬
- 在遊戲中不能被垃圾回收
②什麼是ActorComponent?
- 能被複用的功能能夠添加進入Actor
- 包含一些最有趣的函數和事件
- 能被Blueprint訪問~
③組件例子
- Scene Component 添加形狀和鏈接
- Primitive Component 添加碰撞和渲染
- UAudioComponent,UArrowComponent,UInputComponent,ULightComponent,UMeshComponent,UParticleSystemComponent等等...
- 寫過UnrealScript會對組件深有體會
④PrimitiveComponent組件事件舉例
- Hit- 再碰到強的時候調用
- Begin/EndOverlap -進出一個Trigger
- Begin/EndCursorOver 沒用過
- Clicked/Released 不解釋
- InputTouchBegin/End
- Begin/EndTouchOver
10.你就只認得個Pawn
- Pawn就是你的阿凡達
- 這個傀儡被Controller操縱着
- 一般處理運動和輸入控制
- 實現HP的好位置
- 一般沒有運動或是輸入反饋的代碼,你能夠在Controller中寫
11.來見見老朋友Controller
- 控制Pawn的傀儡師
- 能夠理解作就是玩家
- AIController就是控制AI的
- 一次只能Possess一個Pawn
- 當Pawn死的時候能夠繼續存在,在個人遊戲中讓pawn死亡,遊戲假重置,就是controller直接Possess一個新Pawn的
- PlayerControlelr
- 玩家阿凡達的接口
- 處理點擊,手柄,鍵盤
- 顯示和隱藏鼠標指針
- 不須要Pawn表示的好地方
- 菜單,語音聊天...
一些別的有用選項
12.Character
這是使用過UE3的人學習UE4最困惑的地方,有了Pawn爲何還要擴展PlayerCharacter?
- 這是一種能走的Pawn,由於包含了MovementComponent
- 和上邊同樣,添加了一些有用的組件
- 處理碰撞
- 處理客戶端角色運動
- 比UE3有更大的升級
13.HUD
- 還有一些繪製API
- 沒有構建HUD的工具
- UMG直接提供全部的東西,我討厭老舊UI系統。UMG讓人解放了
14.GameMode
- 還記得GameInfo嗎,實現遊戲規則用的
- 配置Pawn,Controller和HUD是誰
- 能在任何地方被訪問,我來告訴你API GetGameMode()
- 只在服務器和單機實例中存在
- GameState是被用來在客戶端複製狀態用的
- 默認遊戲類型能夠在Project Settings中被設置
- 每一個地圖都有本身的GameMode,須要你親手設置
15.Input
- 這是我對UE4最讚揚的改進之一,你直接在編輯器中添加Bind而不是讓你眼花的配置文件中
- 在Project Settings中設置去吧
- 獲取指令
- PlayerController
- Level Blueprint
- Possessed Pawn
16.碰撞
- 有多種碰撞處理的方法
- 線性檢測 Line Trace
- 體積掃過 Geometry Sweeps
- 重疊測試 Overlap tests
- 簡單的碰撞
- Box,膠囊,球,多邊形
- 在運動和物理模擬的時候都須要
- 複雜碰撞