Needle Engine
  • README
  • Code Of Conduct
  • HOW TO
  • documentation
    • SUMMARY
    • _backlog-mermaid
    • _backlog
    • _meta-test
    • Automatic Component Generation
    • Needle Core Components
    • How To Debug
    • Deployment and Optimization
    • embedding
    • Everywhere Actions
    • Example Projects ✨
    • Exporting Assets, Animations, Prefabs, Materials, Lightmaps...
    • Questions and Answers (FAQ) 💡
    • Feature Overview
    • This page has been moved: continue here
    • getting-started
    • Frameworks, Bundlers, HTML
    • index
    • Additional Modules
    • Networking
    • Needle Engine Project Structure
    • Samples Projects
    • Scripting Examples
    • Creating and using Components
    • Live
    • Live
    • About
    • Live
    • Live
    • Live
    • Live
    • Support, Community & AI
    • Technical Overview
    • Testimonials
    • Testing on local devices
    • Using Needle Engine directly from HTML
    • vision
    • VR & AR (WebXR)
    • blender
      • Needle Engine for Blender
    • cloud
      • Needle Cloud
    • custom-integrations
      • index
    • getting-started
      • Scripting Introduction for Unity Developers
      • Getting Started & Installation
      • Scripting in Needle Engine
    • reference
      • needle.config.json
      • <needle-engine> Configuration
      • @serializable and other decorators
    • three
      • index
    • unity
      • Editor Sync
      • Needle Engine for Unity
    • lang
      • de
        • 404
        • SUMMARY
        • Automatische Komponenten-Generierung
        • Needle-Kernkomponenten
        • Debugging
        • Bereitstellung und Optimierung
        • embedding
        • Everywhere Actions
        • Beispielprojekte ✨
        • Assets, Animationen, Prefabs, Materialien, Lightmaps exportieren...
        • Fragen und Antworten (FAQ) 💡
        • Funktionsübersicht
        • Diese Seite wurde verschoben: hier fortfahren
        • getting-started
        • Frameworks, Bundler, HTML
        • index
        • Zusätzliche Module
        • Netzwerkfunktionen
        • Needle Engine Projektstruktur
        • Beispielprojekte
        • Scripting Beispiele
        • Erstellen und Verwenden von Komponenten
        • Live
        • Live
        • Über
        • Live
        • Live
        • Live
        • Live
        • Support und Community
        • Technischer Überblick
        • Erfahrungsberichte
        • Testen auf lokalen Geräten
        • Needle Engine direkt aus HTML verwenden
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine für Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Einführung in das Scripting für Unity-Entwickler
          • Erste Schritte & Installation
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • <needle-engine> Konfiguration
          • @serializable und andere Decorators
        • three
          • index
        • unity
          • Editor Synchronisierung
          • Needle Engine für Unity
      • es
        • SUMMARY
        • Generación Automática de Componentes
        • Componentes principales de Needle
        • Cómo Depurar
        • Despliegue y optimización
        • embedding
        • Acciones Everywhere
        • Proyectos de Ejemplo ✨
        • Exportación de Assets, Animaciones, Prefabs, Materiales, Lightmaps...
        • Preguntas Frecuentes (FAQ) 💡
        • Resumen de Características
        • Esta página ha sido movida: continúe aquí
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Módulos Adicionales
        • Redes
        • Estructura de Proyecto de Needle Engine
        • Proyectos de ejemplo
        • Ejemplos de scripting
        • Crear y usar Components
        • En vivo
        • En Vivo
        • Acerca de
        • En vivo
        • En vivo
        • En vivo
        • En vivo
        • Soporte y Comunidad
        • Resumen técnico
        • Testimonios
        • Testing on local devices
        • Usando Needle Engine directamente desde HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine para Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introducción al Scripting para Desarrolladores de Unity
          • Primeros pasos e instalación
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • Configuración de <needle-engine>
          • @serializable y otros decoradores
        • three
          • index
        • unity
          • Editor Sync
          • Needle Engine para Unity
      • fr
        • SUMMARY
        • Génération automatique de composants
        • Composants principaux de Needle
        • Comment déboguer
        • Déploiement et Optimisation
        • embedding
        • Everywhere Actions
        • Exemples de Projets ✨
        • Exporter des Assets, des Animations, des Prefabs, des Matériaux, des Lightmaps...
        • Questions et Réponses (FAQ) 💡
        • Aperçu des fonctionnalités
        • Cette page a été déplacée : continuez ici
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Modules supplémentaires
        • Réseau
        • Structure du projet Needle Engine
        • Projets d'exemples
        • Exemples de Scripting
        • Créer et utiliser des Components
        • showcase-bike
        • En direct
        • À propos
        • En direct
        • Jouer
        • En direct
        • En direct
        • Support et Communauté
        • Vue d'ensemble technique
        • Témoignages
        • Tester sur les appareils locaux
        • Utiliser Needle Engine directement depuis HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine pour Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introduction au Scripting pour les Développeurs Unity
          • Premiers pas et installation
          • Scripting in Needle Engine
        • reference
          • needle.config.json
          • <needle-engine> Configuration
          • @serializable et autres décorateurs
        • three
          • index
        • unity
          • Synchronisation de l'Editor (Editor Sync)
          • Needle Engine pour Unity
      • hi
        • SUMMARY
        • कंपोनेंट का स्वतः जनरेशन
        • नीडल कोर कंपोनेंट्स
        • How To Debug
        • Deployment and Optimization
        • embedding
        • Everywhere Actions
        • उदाहरण प्रोजेक्ट ✨
        • एसेट, एनिमेशन, प्रीफैब, मटेरियल, लाइटमैप्स... को एक्सपोर्ट करना
        • प्रश्न और उत्तर (FAQ) 💡
        • सुविधा अवलोकन
        • यह पृष्ठ स्थानांतरित कर दिया गया है: यहां जारी रखें
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • अतिरिक्त मॉड्यूल
        • नेटवर्किंग
        • Needle Engine प्रोजेक्ट स्ट्रक्चर
        • samples-and-modules
        • स्क्रिप्टिंग उदाहरण
        • कंपोनेंट बनाना और उपयोग करना
        • लाइव
        • लाइव
        • परिचय
        • लाइव
        • लाइव
        • लाइव
        • लाइव
        • समर्थन और समुदाय
        • तकनीकी अवलोकन
        • प्रशंसापत्र
        • Testing on local devices
        • HTML से सीधे Needle Engine का उपयोग करना
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine for Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Unity डेवलपर्स के लिए स्क्रिप्टिंग परिचय
          • आरंभ करना और इंस्टॉलेशन
          • Needle Engine में स्क्रिप्टिंग
        • reference
          • needle.config.json
          • <needle-engine> कॉन्फ़िगरेशन
          • @serializable and other decorators
        • three
          • index
        • unity
          • Editor Sync
          • Unity के लिए Needle Engine
      • ja
        • SUMMARY
        • 自動コンポーネント生成
        • Needleコアコンポーネント
        • デバッグの方法
        • デプロイと最適化
        • embedding
        • Everywhere Actions
        • サンプルプロジェクト ✨
        • アセット、アニメーション、Prefab、マテリアル、ライトマップなどのエクスポート
        • よくある質問(FAQ)💡
        • 機能概要
        • このページは移動しました: こちらからどうぞ
        • getting-started
        • フレームワーク、バンドラー、HTML
        • index
        • 追加モジュール
        • ネットワーキング
        • Needle Engineプロジェクトの構造
        • サンプルプロジェクト
        • スクリプティング例
        • Creating and using Components
        • ライブ
        • showcase-castle
        • 概要
        • ライブ
        • ライブ
        • ライブ
        • ライブ
        • サポートとコミュニティ
        • 技術概要
        • お客様の声
        • ローカルデバイスでのテスト
        • HTMLからNeedle Engineを直接使用する
        • vision
        • VR & AR (WebXR)
        • blender
          • Blender 用 Needle Engine
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Scripting Introduction for Unity Developers
          • はじめに & インストール
          • Needle Engineでのスクリプティング
        • reference
          • needle.config.json
          • <needle-engine> 設定
          • @serializable およびその他のデコレーター
        • three
          • index
        • unity
          • Editor Sync
          • Unity用Needle Engine
      • pt
        • SUMMARY
        • Automatic Component Generation
        • Componentes Principais do Needle
        • Como Depurar
        • Implementação e Otimização
        • embedding
        • Everywhere Actions
        • Projetos de Exemplo ✨
        • Exportar Recursos, Animações, Prefabs, Materiais, Lightmaps...
        • Perguntas e Respostas (FAQ) 💡
        • Visão Geral dos Recursos
        • Esta página foi movida: continue aqui
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Módulos Adicionais
        • Redes
        • Estrutura do Projeto Needle Engine
        • Projetos de Exemplo
        • Exemplos de Scripting
        • Criar e usar Componentes
        • Ao Vivo
        • Ao Vivo
        • Sobre
        • Ao Vivo
        • Ao Vivo
        • Ao Vivo
        • Ao Vivo
        • Suporte e Comunidade
        • Visão Geral Técnica
        • Depoimentos
        • Testar em dispositivos locais
        • vanilla-js
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine para Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Introdução à Scripting para Developers Unity
          • Começar e Instalação
          • Scripting no Needle Engine
        • reference
          • needle.config.json
          • needle-engine-attributes
          • @serializable e outros decorators
        • three
          • index
        • unity
          • Sincronização do Editor
          • Needle Engine para Unity
      • vn
        • 404
        • SUMMARY
        • Automatic Component Generation
        • Các Component Cốt lõi của Needle
        • Cách gỡ lỗi
        • Triển khai và Tối ưu hóa
        • embedding
        • Hành động ở mọi nơi (Everywhere Actions)
        • Các Dự Án Ví Dụ ✨
        • Xuất Tài sản, Hoạt ảnh, Prefab, Vật liệu, Lightmap...
        • Câu hỏi thường gặp (FAQ) 💡
        • Tổng quan tính năng
        • Trang này đã được di chuyển: tiếp tục tại đây
        • getting-started
        • Frameworks, Bundlers, HTML
        • index
        • Các Module Bổ Sung
        • Kết nối mạng
        • Cấu trúc dự án Needle Engine
        • samples-and-modules
        • Ví dụ về Scripting
        • Tạo và sử dụng Component
        • Trực tiếp
        • Trực tiếp
        • Giới thiệu
        • Trực tiếp
        • Chơi thử
        • Trực tiếp
        • Demo trực tiếp
        • Hỗ trợ và Cộng đồng
        • Tổng quan kỹ thuật
        • Lời chứng thực
        • Testing on local devices
        • Sử dụng Needle Engine trực tiếp từ HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine cho Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Giới thiệu về Scripting cho các nhà phát triển Unity
          • Getting Started & Installation
          • Scripting trong Needle Engine
        • reference
          • needle.config.json
          • Cấu hình <needle-engine>
          • @serializable và các decorator khác
        • three
          • index
        • unity
          • Editor Sync
          • Needle Engine cho Unity
      • zh
        • SUMMARY
        • 自动生成组件
        • Needle 核心组件
        • 如何调试
        • 部署与优化
        • embedding
        • Everywhere Actions
        • 示例项目 ✨
        • 导出资源、动画、预制体、材质、光照贴图...
        • 常见问题 (FAQ) 💡
        • 功能概览
        • 此页面已移动:请在此处继续
        • getting-started
        • 框架、打包器、HTML
        • index
        • 附加模块
        • 网络
        • Needle Engine 项目结构
        • 示例项目
        • Scripting Examples
        • Creating and using Components
        • 实时示例
        • 实时
        • 关于
        • 实时演示
        • 在线试玩
        • 实时演示
        • 现场演示
        • 支持与社区
        • 技术概述
        • 用户评价
        • Testing on local devices
        • 使用 Needle Engine 直接从 HTML
        • vision
        • VR & AR (WebXR)
        • blender
          • Needle Engine for Blender
        • cloud
          • Needle Cloud
        • custom-integrations
          • index
        • getting-started
          • Scripting Introduction for Unity Developers
          • 入门与安装
          • 在 Needle Engine 中编写脚本
        • reference
          • needle.config.json
          • <needle-engine> 配置
          • @serializable and other decorators
        • three
          • index
        • unity
          • 编辑器同步
          • Unity 版 Needle Engine
Powered by GitBook
On this page
  • 部署是什么意思?
  • 可用的部署目标
  • 开发版本构建 (Development Builds)
  • 生产版本构建 (Production Builds)
  • 部署选项
  • 构建到文件夹 (Build To Folder)
  • 跨平台部署工作流程 (Cross-Platform Deployment Workflows)
  • Unity 的 Needle Engine 命令行参数
Edit on GitHub
  1. documentation
  2. lang
  3. zh

部署与优化

Previous如何调试Nextembedding

Last updated 26 days ago

部署是什么意思?

部署是将您的应用程序通过网站公开的过程。Needle Engine 利用最新的压缩技术,例如 KTX2、Draco 和 Meshopt,确保您的项目尽可能小巧快速。

可用的部署目标

  • 非常适合空间网络应用和资产共享。

  • 非常适合实验和修改服务器端代码。

  • 非常适合托管您自己的网站和自定义域名。

  • 常用于游戏。

  • 免费静态页面托管。

  • 面向前端开发者的平台。

  • 直接部署到任何支持 FTP 的服务器。支持 FTP 和 SFTP。

  • 构建到文件夹后,您可以将文件上传到任何网络服务器或其他托管服务。

  • Facebook 和 Facebook Messenger 上的游戏平台。

::: tip 觉得缺少了什么? 请在我们的中告知我们! :::

开发版本构建 (Development Builds)

请参阅上面的指南,了解如何在编辑器(例如 Unity 或 Blender)中访问这些选项。

我们通常建议进行生产版本构建以优化文件大小和加载速度(详见下文)。

生产版本构建 (Production Builds)

优化和压缩选项

纹理压缩 (Texture compression)

生产版本构建默认使用 KTX2 压缩纹理(根据项目中的使用情况,可以是 ETC1S 或 UASTC), 但您也可以选择 WebP 压缩并选择质量级别。

如何在 ETC1S、UASTC 和 WebP 压缩之间进行选择?

格式 (Format)
ETC1S
UASTC
WebP

GPU 内存使用 (GPU Memory Usage)

低 (Low)

低 (Low)

高(未压缩)(High (uncompressed))

文件大小 (File Size)

低 (Low)

高 (High)

非常低 (Very low)

质量 (Quality)

中 (Medium)

非常高 (Very high)

取决于质量设置 (Depends on quality setting)

典型用法 (Typical usage)

适用于所有情况,但最适合颜色纹理 (Works for everything, but best for color textures)

高细节数据纹理:法线贴图、粗糙度、金属度等 (High-detail data textures: normal maps, roughness, metallic, etc.)

ETC1S 质量不足但 UASTC 过大的文件 (Files where ETC1S quality is not sufficient but UASTC is too large)

您可以使用 Unity 中的 Needle Texture Importer 或 Blender 中材质标签页上的选项,对每个纹理选择纹理压缩和逐步加载选项。

网格压缩 (Mesh compression)

默认情况下,生产版本构建将使用 Draco 压缩网格。使用 MeshCompression 组件可以选择为每个导出的 glTF 应用 draco 或 mesh-opt 压缩。 此外,您可以在网格导入设置(Unity)中设置网格简化,以减少生产版本构建的多边形数量。在浏览器中查看您的应用程序时,您可以附加 ?wireframe 到您的 URL 以预览网格。

如何在 Draco 和 Meshopt 之间进行选择?

格式 (Format)
Draco
Meshopt

GPU 内存使用 (GPU Memory Usage)

中 (Medium)

低 (Low)

文件大小 (File Size)

最低 (Lowest)

低 (Low)

动画压缩 (Animation compression)

否 (No)

是 (Yes)

:::details 如何设置 draco 和 meshopt 压缩设置? 添加 MeshCompression 组件,为每个导出的 glTF 选择应应用的压缩方式。

  • 要更改当前场景的压缩,只需将其添加到根场景中的任意位置。

  • 要更改 prefab 或 NestedGltf 的压缩,将其添加到 GltfObject 或任何组件引用/导出的 prefab 中。

  • 要更改引用的场景的压缩,只需将其添加到导出的引用场景中即可。 :::

渐进式纹理 (Progressive Textures)

您还可以将 Progressive Texture Settings 组件添加到场景中的任意位置,使项目中的所有纹理都进行渐进式加载。目前,渐进式加载不应用于光照贴图或天空盒纹理。

通过渐进式加载,纹理将首先以较低分辨率版本加载。当纹理可见时,全质量版本将动态加载。这通常会显着减少场景的初始加载时间。

:::details 如何启用渐进式纹理加载?

可以为每个纹理启用渐进式纹理加载

或者为项目中的所有纹理启用:

为项目中没有其他特定设置的所有纹理启用:

自动网格 LODs (Level of Detail)

自 Needle Engine 3.36 起,我们会自动生成 LOD 网格并在运行时进行切换。LOD 按需加载,仅在需要时加载,因此此功能既减少了加载时间,也提升了性能。

主要优势

  • 更快的初始加载时间

  • 由于屏幕上平均顶点数量更少,渲染时间更快

  • 由于使用 LOD 网格,光线投射更快

您可以在 Progressive Loading Settings 组件中或在 Mesh Importer 设置中为整个项目禁用 LOD 生成。

部署选项

部署到 Glitch 🎏

您可以通过将 DeployToGlitch 组件添加到场景中并按照说明进行操作来部署到 glitch。

请注意,glitch 上托管的免费项目不能超过约 100 MB。如果您需要上传更大的项目,请考虑使用不同的部署目标。

:::details 如何从 Unity 部署到 Glitch?

  1. 将 DeployToGlitch 组件添加到具有 ExportInfo 组件的 GameObject 上。

  2. 收到部署密钥后,您可以点击 Build & Deploy 按钮上传到 glitch。

:::

:::details 如何从 Blender 部署到 Glitch?

  1. 在 Scene 标签页中找到 Deploy To Glitch 面板

  2. 点击组件上的 Remix on glitch 按钮

  3. 您的浏览器将打开 glitch 项目模板

  4. 等待 Glitch 生成新项目

  5. 将项目 URL 复制粘贴到 Blender DeployToGlitch 面板中作为项目名称(您可以粘贴完整的 URL,面板将提取必要的信息)

  6. 在 Glitch 上打开 .env 文件,并在 DEPLOY_KEY 旁边的 Variable Value 字段中输入密码

  7. 在 Blender 的 Key 字段中输入相同的密码

  8. 点击 DeployToGlitch 按钮构建并上传您的项目到 glitch。上传完成后将打开一个浏览器。如果打开后显示黑色,请尝试刷新页面。 :::

Glitch 故障排除

部署到 Netlify

:::details 如何从 Unity 部署到 Netlify? 只需将 DeployToNetlify 组件添加到您的场景中并按照说明进行操作。您可以通过点击按钮或部署到现有项目来创建新项目。

部署到 Vercel

  1. 在 vercel 上创建一个新项目

  2. 将您的 web 项目添加到 github 仓库

  3. 将仓库添加到 vercel 上的项目

部署到 itch.io

:::details 如何从 Unity 部署到 itch.io?

  1. 等待构建完成,完成后会打开一个包含最终 zip 文件的文件夹

  2. 保存您的 itch 页面并查看 itch 项目页面。 现在它应该会加载您的 Needle Engine 项目 😊

可选设置

:::details Itch.io: 未找到 index.html

Failed to find index.html

:::

部署到 FTP

:::details 如何从 Unity 部署到我的 FTP 服务器?

  1. 将 DeployToFTP 组件¹ 添加到场景中的一个 GameObject 上(将其添加到与 ExportInfo 相同的 GameObject 是个好习惯 - 但不是强制的)

  2. 如果尚未这样做,请分配一个 FTP 服务器资产并填写服务器、用户名和密码 ²此资产包含您 FTP 服务器的访问信息 - 您在托管服务提供商处创建新的 FTP 帐户时会获得这些信息

  3. 点击 DeployToFTP 组件上的 Build & Deploy 按钮,构建您的项目并将其上传到您的 FTP 帐户

:::details 如何手动部署到我的 FTP 服务器?

  1. 打开 File > Build Settings,选择 Needle Engine,然后点击 Build

  2. 等待构建完成 - 所有构建和压缩步骤运行完成后,结果 dist 文件夹将自动打开。

  3. 将 dist 文件夹中的文件复制到您的 FTP 存储空间。

就这样! 😉

注意: 如果上传后结果不工作,可能是因为您的网络服务器不支持提供 gzipped 文件。您有两种方法解决此问题: 选项 1: 您可以尝试使用 .htaccess 文件在您的服务器上启用 gzip 压缩! 选项 2: 您可以在 Build Settings 中(File/Build Window,选择 Needle Engine 平台)关闭 gzip 压缩。

注意: 如果在压缩过程中出现错误,请告知我们并报告 bug!如果您的项目在本地工作,但仅在进行生产版本构建时失败,您可以通过进行开发版本构建立即解决问题。只需在 Build Settings 中切换 Development Build 即可。

:::

使用 .htaccess 文件启用 gzip

要在您的 FTP 服务器上启用 gzip 压缩,您可以在要上传的目录(或父目录)中创建一个名为 .htaccess 的文件。 将以下代码插入到您的 .htaccess 文件中,然后保存/上传到您的服务器:

<IfModule mod_mime.c>
RemoveType .gz
AddEncoding gzip .gz
AddType application/javascript .js.gz
</IfModule>

部署到 Github Pages

:::details 如何从 Unity 部署到 Github Pages?

:::

Github Pages 故障排除

  • 我部署到 github pages 了,但是没有运行任何 action / 网站没有上线

    • 如果您是第一次部署,可能需要几分钟网站才能上线。您可以在 github 上查看 Actions 标签页(/actions)来查看部署过程。

    • 如果几分钟后您的网站仍未上线,或者您在 github 上的 Actions 标签页中没有看到任何 workflow 运行,请转到 Github Pages 设置页面(/settings/pages),并确保 Branch 设置为 gh-pages

部署到 Facebook Instant Games

使用 Needle Engine,您可以自动构建到 Facebook Instant Games 无需对您的 web 应用或游戏进行手动调整。

:::details 如何从 Unity 部署到 Facebook Instant Games?

  • 点击 Build For Instant Games 按钮

  • 构建完成后,您将获得一个 ZIP 文件,您可以将其上传到您的 facebook 应用。

  • 就这样 - 然后您可以点击每个版本旁边的 Play 按钮在 facebook 上测试您的游戏。

:::

:::details 如何在 Facebook 上创建应用(具有 Instant Games 功能)

构建到文件夹 (Build To Folder)

在 Unity 中打开 File/Build Settings,选择 Needle Engine 以获取选项:

要构建您的 web 项目以便上传到任何网络服务器,您可以点击 Unity Editor Build Settings Window 中的 Build 按钮。您可以启用 Development Build 复选框以忽略压缩(见下文),这需要您的机器上安装 toktx。

要本地预览最终构建,您可以使用窗口底部的 Preview Build 按钮。此按钮将首先执行常规构建,然后在包含最终文件的目录中启动本地服务器,以便您可以看到将这些文件上传到网络服务器后得到的结果。

Nodejs 仅在开发期间需要。发布的网站(使用我们默认的 vite 模板)是一个静态页面,不依赖于 Nodejs,可以放在任何常规网络服务器上。如果您想在同一个网络服务器上运行我们的极简网络服务器(自动包含在 Glitch 部署过程中),则需要 Nodejs。


跨平台部署工作流程 (Cross-Platform Deployment Workflows)

可以创建常规的 Unity 项目,您可以同时构建到 Needle Engine 和常规的 Unity 平台,例如 Desktop 甚至 WebGL。我们的“组件映射”方法意味着在 Unity 内部不会修改运行时逻辑 - 如果您愿意,您可以常规地使用 Play Mode 并构建到其他目标平台。在某些情况下,这意味着您将有重复的代码(C# 代码和匹配的 TypeScript 逻辑)。由此产生的额外工作量取决于您的项目。

Unity 的 Needle Engine 命令行参数

Unity 的 Needle Engine 支持各种命令行参数,用于导出单个资产(Prefabs 或 Scenes)或以批处理模式(无窗口)构建整个 web 项目。

下表列出了可用的选项:

-scene

要导出场景或资产的路径,例如 Assets/path/to/myObject.prefab 或 Assets/path/to/myScene.unity

-outputPath <path/to/output.glb>

设置构建的输出路径(仅在构建场景时有效)

-buildProduction

运行生产版本构建

-buildDevelopment

运行开发版本构建

-debug

打开控制台窗口进行调试


本页面由 AI 自动翻译

与生产版本构建 (Production Build) 的主要区别在于,开发版本构建不会进行 和 压缩(用于减小文件大小和加载速度),也没有逐步加载高质量纹理的选项。

要进行生产版本构建,您需要安装 ,它使用 KTX2 超级压缩格式提供纹理压缩。请访问 下载并安装最新版本(撰写本文时为 v4.1.0)。安装后可能需要重启 Unity。如果您确定已安装 toktx 并且它在您的 PATH 中,但仍然找不到,请重启您的机器并尝试再次构建。

:::details 高级:自定义 glTF 扩展 如果您计划添加自己的自定义 glTF 扩展,生产版本构建需要处理 gltf-transform 中的这些扩展。请参阅 获取参考。 :::

:::details Unity:如何设置每个纹理的压缩设置? :::

:::details Blender:如何设置每个纹理的压缩设置? 选择材质标签页。您将看到该材质使用的所有纹理的压缩选项。 :::

:::details Toktx 找不到 Windows:确保您已将 toktx 添加到您的系统环境变量中。添加后可能需要重启计算机才能刷新环境变量。默认安装位置是 C:\Program Files\KTX-Software\bin :::

image

:::details 在哪里可以找到网格简化选项以在生产版本构建时减少顶点数量? 选择一个 Mesh 并打开 Needle 导入器选项,查看选定网格的可用选项: :::

image

:::

image
image

为所有人提供了一种快速免费的方式来托管小型和大型网站。我们提供了一种简单的方法来混音 (remix) 并部署到新的 Glitch 页面(基于我们的 starter),以及在需要时在同一个 Glitch 页面上运行一个极简的网络服务器。

点击组件上的 Create new Glitch Remix 按钮

Glitch 现在将创建模板的混音 (remix)。从浏览器中复制 URL

再次打开 Unity,并将 URL 粘贴到 Deploy To Glitch 组件的 Project Name 字段中

等待几秒钟,直到 Unity 从 glitch 收到您的部署密钥(此密钥安全地存储在 glitch 的 .env 文件中。不要与他人共享,拥有此密钥的任何人都可以上传到您的 glitch 网站)

Deploy To Glitch from Blender component

如果您点击 Create new Glitch Remix,浏览器显示 there was an error starting the editor 这样的错误,您可以点击 OK。然后访问 并确保您已登录。之后,您可以再次尝试点击 Unity 或 Blender 中的按钮。

Deploy to netlify component

:::

请参阅我们的 获取项目配置

在 上创建一个新项目

将 Kind of project 设置为 HTML

将 DeployToItch 组件添加到您的场景中,然后点击 Build 按钮

将最终 zip 上传到 itch.io

选择 This file will be played in the browser

:::

如果您在上传项目后看到此错误,请确保您没有上传 gzipped 的 index.html 文件。 您可以在 Needle web 项目文件夹中的 vite.config.js 中禁用 gzip 压缩。只需删除包含 viteCompression({ deleteOriginFile: true }) 的行。然后再次构建您的项目并上传到 itch。

¹ Deploy to FTP 组件

² 包含您 FTP 用户帐户访问信息的 FTP Server 资产

分配服务器资产后的 Deploy To FTP 组件。您可以使用路径字段直接部署到服务器的子文件夹 :::

20220830-003602_explorer-needle
Unity build window showing Needle Engine platform

将 DeployToGithubPages 组件添加到您的场景中,并复制粘贴您想要部署到的 github 仓库(或 github pages url)。

将 Deploy To Facebook Instant Games 组件添加到您的场景中:

在 Facebook 上添加 Instant Games 模块,并转到 Instant Games/Web hosting

您可以使用 Upload version 按钮 (1) 上传您的 zip。上传完成并处理完 zip 后,点击 Stage for testing 按钮测试您的应用(2,此处为蓝色按钮)或 Push to production(带星号的按钮)

,选择 Other。然后点击 Next

选择类型 Instant Games

创建应用后,添加 Instant Games 产品

您可以在此处找到 。注意:您只需创建一个具有 instant games 功能的应用即可。 我们将处理其他所有事情,无需对您的 Needle Engine 网站进行手动调整。 :::

image
image

在 Unity 中进入 Play Mode 在 Project Settings > Needle Engine 中,您可以关闭 Override Play Mode 和 Override Build settings 来在 Needle 的构建过程和 Unity 的构建过程之间切换:

ktx2
draco
toktx
toktx Releases Page
@needle-tools/gltf-build-pipeline
Glitch
glitch.com
sample project
itch.io
官方 instant games 文档
Needle Cloud
论坛
Glitch
Netlify
itch.io
GitHub Pages
Vercel
FTP Upload
Build to folder
Facebook Instant Games
创建一个新应用