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

服務

有時候需要一個可以從所有角色和組件訪問的類。這可以通過服務來實現,服務是可以注入到角色和組件中的類。每個服務只會有一個實例。這類似於單例設計模式。它可以用於多種目的:

  1. Global access/全面使用權: 服務提供了一種便捷的方式,可以從遊戲代碼的任何地方訪問特定對象或功能。這對於管理和共享資源、遊戲狀態或音頻管理器、輸入處理器、配置設置等服務很有幫助。

  2. Game state management/遊戲狀態管理: 服務可用於管理遊戲的整體狀態,包括分數、關卡進度或當前遊戲模式等方面。這有助於在代碼的各個部分保持一致的遊戲狀態。

  3. Configuration settings/配置設置: 存儲和訪問全局配置設置或變量是一個常見用例。

  4. Cross-actor communication/跨角色通信: 服務可以通過提供共享接口來促進不同角色或系統之間的通信。例如,可以在服務上放置事件發射器,以在事件發生時通知遊戲中的每個角色。

創建服務

要創建服務,只需在類上添加 @Service() 裝飾器即可。

// src/services/game-state.ts
import { Service } from "@hology/core/gameplay";

@Service()
class GameState {
  score: number
}

export default GameState

注入服務

可以通過使用inject函數並傳入服務的類來在任何角色或組件中使用服務。

// src/actors/goal.ts
import { Actor, BaseActor, inject, } from "@hology/core/gameplay";
import Service from "../services/game-state.ts"

@Actor()
class Goal extends BaseActor {
  private gameState = inject(GameState)
}

內置服務

以下是一些可能對你有用的服務,同時也為服務提供了示例用例。

  • World: 世界服務可用於生成角色。

  • PhysicsSystem: 管理遊戲中的所有物理。可用於為角色設置物理、對角色施加力,以及訂閱碰撞事件。

  • ViewController: 引擎渲染的接口。可用於設置活動攝像機或暫停/恢復渲染。

上一页移動 Actors下一页載入資產

最后更新于1个月前