Hology
Hology 文檔
Hology 文檔
  • 👋歡迎來到Hology文檔
  • Getting started
    • Hology Engine簡介
    • 第一步指南
    • 編輯器基礎指南
      • 在場景中飛行
      • 放置物件
      • 選擇物件
      • 變換
      • 分組物件
      • 複製
    • 入門遊戲模板 - 第三人稱射擊遊戲
  • Tutorials
    • 滾球 - 遊戲玩法編程
    • 角色動畫程式設計
    • Character AI behavior
  • Release
    • 遊戲發行
      • Discord Activities
      • 臉書即時遊戲
      • 上傳至 Itch.io
      • 使用 GitHub Pages
      • 發布到Steam
      • iOS 和 Android
  • Assets
    • 3D模型
      • 客製化碰撞形狀
      • 材質自訂分配
    • 材質
    • 紋理
    • 預製體
  • Gameplay
    • 演員(Actors)
      • 創建演員類
      • 演員參數
      • Actor 元件
      • Actor 的生命週期
      • 生成 Actors
      • 移動 Actors
    • 服務
      • 載入資產
    • Player input
    • Collision detection
    • Physics
      • Physics body types
      • Applying forces
      • Ray casting
    • Trigger volumes
    • Character movement
    • Pointer events
    • Animation
      • Animation system
      • Character Animation
      • Animation State Machine
    • Sound
      • Audio parameter
    • 世界
    • Navigation
  • Shaders
    • 著色器介紹
    • Creating shaders
    • 著色器參數
    • Typescript shaders
      • Types
      • Math functions
      • Attributes
      • Varying
      • Uniforms
      • Textures
      • Arrays
      • Select
      • Lighting
    • Painted materials
    • Water shader tutorial
  • Level design
    • 地形雕刻
    • 地形繪製
    • Grass
  • User Interfaces
    • 創建用戶界面UI
    • 使用 React
    • VR
  • Visual Effects
    • 視覺效果簡介
    • 視覺特效資產
  • Integrations
    • Arcweave
由 GitBook 提供支持
在本页
  • 範例元件
  • 附加元件
  • 元件選項
  1. Gameplay
  2. 演員(Actors)

Actor 元件

在 Hology 中,Actor 元件扮演著至關重要的角色,它們使您能夠以清晰且有條理的方式模組化並擴展遊戲物件(actors)的功能。通過將複雜的 actors 分解為更小、可重用且易於管理的部分,Actor 元件讓您的遊戲開發過程更加高效且易於維護。

  1. 模組化與可重用性:

    • Actor 元件是獨立的功能單元,可以附加到一個或多個 actors 上。這種模組化允許您創建可重用的功能片段,這些片段可以在多個 actors 或項目中使用。

  2. 組織性:

    • Actor 元件幫助您通過將 actor 的不同行為方面分離到獨立的元件中來組織其功能。例如,您可以為角色移動、生命值、物品欄等分別創建不同的元件。

  3. 代碼封裝:

    • 每個 Actor 元件都可以封裝自己的邏輯和數據,使得管理和維護代碼更加容易。這種關注點分離有助於防止代碼重複,並保持代碼庫整潔。

  4. 自定義與可擴展性:

    • 您可以輕鬆地向 actor 添加或移除元件,以自定義其行為,而無需修改核心 actor 類。這使得迭代遊戲設計和機制變得更加簡單。

  5. 編輯器友好性:

    • Hology 的編輯器提供了一個用戶友好的介面來配置 Actor 元件,使設計師和美術人員即使沒有程式設計知識也能輕鬆使用。

範例元件

在以下範例中,我們有一個用於保存物件生命值狀態的元件。max health 是一個參數,可以在編輯器中調整,但也被賦予了一個預設值。

current health 在初始化時被設置為 max health 的值。這是因為 max health的值是在類被實例化之後才設置的,因此在定義 currentHealth 屬性時無法使用該值。

@Component()
class HealthComponent extends ActorComponent {
    @Parameter() maxHealth: number = 100
    currentHealth: number
    
    onInit() {
        this.currentHealth = this.maxHealth
    }
    
    update(change: number) {
        this.currentHealth = Math.max(0, this.currentHealth + change)
    }
}

附加元件

Actors 可以通過使用 attach(Type<ActorComponent>) 函數將元件作為屬性添加到自身,該函數需要傳入您希望附加的類型。

@Actor()
class CharacterActor extends BaseActor {
    health = attach(HealthComponent)
    
    takeHit(damage: number) {
        this.health.update(-damage)
    }
}

元件選項

使用 @Component() 裝飾器,您可以傳遞額外的選項。

@Component({ inEditor: false, editorOnly: false })
class HealthComponent extends ActorComponent {

}
  • inEditor (類型:boolean,預設值:false) - 指定該元件是否應在編輯器中使用。在編輯器中,此選項僅用於提供視覺反饋來顯示 actor 的外觀。其他功能應該被禁用。請注意,一些在遊戲中工作的功能可能無法在編輯器中運行。

  • editorOnly (類型:boolean,預設值:false) - 指定該元件是否僅應在編輯器中使用。如果設置為 true,那麼該元件不會出現在遊戲中。這對於顯示 3D 網格非常有用,因為它可以在編輯器中提供一些視覺表示。

上一页演員參數下一页Actor 的生命週期

最后更新于2个月前