UE4 框架

  有不少人是從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,膠囊,球,多邊形
    • 在運動和物理模擬的時候都須要
  •   複雜碰撞
    • 實際用於多邊形
    • 武器和反向動力
相關文章
相關標籤/搜索