当前位置: 首页 > news >正文

(二)VisionOS平台概述

2.VisionOS平台概述

1. VisionOS平台概述

Unity 对VisionOS的支持将 Unity 编辑器和运行时引擎的全部功能与RealityKit提供的渲染功能结合起来。Unity 的核心功能(包括脚本、物理、动画混合、AI、场景管理等)无需修改即可支持。这允许游戏和应用程序逻辑像任何其他 Unity 支持的平台一样在VisionOS上运行,目标是允许现有的 Unity 游戏或应用程序能够在不进行更改的情况下引入其逻辑。

对于渲染,visionOS支持是通过RealityKit提供的。网格、材质、纹理等核心功能应该透明地工作。更复杂的特征(例如粒子)会受到限制。目前不支持全屏后期处理和贴花等高级功能,尽管将来可能会改变。有关更多详细信息,请参阅visionOS PolySpatial 要求和限制以及支持的 Unity 功能和组件。

使用 Unity 中的 PolySpatial 构建 VisionOS 平台添加了新功能,以支持在单独设备上运行的 XR 内容创建,同时还具有无缝且有效的开发体验。最重要的是,VisionOS 的 Unity PolySpatial 默认情况下会像任何其他 XR Unity 应用程序一样对现实世界和其他 AR 内容做出反应。

2. visionOS 应用程序类型

Unity 在 VisionOS 上支持多种不同的应用程序类型,每种应用程序类型都有自己的优点:

如果您有兴趣为visionOS创建完全沉浸式虚拟现实(VR)应用程序,请参阅visionOS上的完全沉浸式VR应用程序了解更多信息。

如果您有兴趣为visionOS创建沉浸式混合现实(MR)应用程序,请参阅visionOS上的PolySpatial MR应用程序了解更多信息。这些应用程序是使用Unity新开发的PolySpatial技术构建的,其中应用程序使用Unity进行模拟,但使用VisionOS的系统渲染器RealityKit进行渲染。

如果您有兴趣创建将在visionOS 上的窗口中运行的内容,请参阅visionOS 上的窗口应用程序以获取更多信息。

2.1 VisionOS模式

2.1.1 VisionOS 上的 PolySpatial 混合现实应用程序

VisionOS 上的混合现实内容可以采用两种模式之一,我们将其称为“共享”和“独占”模式。

模式

描述

Share Space

在“共享”模式下,您的应用程序与共享现实世界空间中活动的任何其他应用程序共存。每个应用程序都有一个或多个有界卷(见下文),但没有无界卷。这些体积的位置和方向(相对和绝对)对于应用程序来说是不透明的。此模式下的输入仅限于通过PolySpatialTouchSpace设备进行的“3D 触摸”机制(请参阅输入)。此外,在此模式下,手部位置、平面或世界网格等 ARKit 信息不可用。

Full Space

在“独占”模式下,除了先前创建的有界体积之外,单个应用程序还通过无界体积(见下文)控制整个视图。在此模式下,应用程序知道其体积的相对位置,可以访问设备的所有 AR 功能,并使用手/关节位置信息直接驱动输入和交互。该应用程序仍然无法移动有界卷或调整有界卷的大小,因此必须依靠用户来确保有界卷不会与无界卷内的有意义的内容重叠。

1.Volumes

卷是混合现实平台的一个新概念。应用程序可以创建一个或多个卷以在混合现实空间中显示内容。每个卷都是一个包含 3D 内容的定向盒子。在visionOS中,用户可以独立地在现实空间中移动和缩放卷,但开发人员不能以编程方式移动和缩放卷。Unity 开发人员使用称为“体积相机”的新 Unity 组件与体积进行交互,如下所述。

模式

描述

有界体积

有界体积具有有限的盒形范围。用户可以在世界空间中移动和转换有界体积,但开发人员不能以编程方式移动和转换。目前,有界体积内的 Unity 内容将扩展以填充体积的实际大小。

有界体积中的输入仅限于 PolySpatialTouchSpace 设备提供的“3D Touch”。看输入.

无限体积

在独占模式下运行时,内容呈现单个无界体积,没有任何剪切边缘。该应用程序拥有整个混合现实视图,没有其他应用程序可见。来自同一应用程序的其他有界卷可以与此无界卷共存。

在无限量内,应用程序可以请求访问完整的手部跟踪数据。

2.体积相机

VolumeCamera是用户代码和内容与体积visionOS 模式交互的主要方式。

2.1.2 VisionOS 中的窗口化应用程序

在visionOS中,用户可以使用窗口来呈现2D或3D内容,或者使用体积来呈现3D内容和对象。Unity 将这些窗口中的应用程序描述为“窗口应用程序”

默认情况下,如果您构建针对visionOS 平台的Unity 应用程序而未通过XR 插件管理器启用PolySpatial 运行时或visionOS 插件,则您的Unity 内容将成为visionOS 中的窗口应用程序。您可以通过在不启用 PolySpatial Runtime 或 VisionOS 插件的情况下构建面向 VisionOS 平台的 SimpleSamples 来看到这一点。

要检测 VisionOS 上窗口组件内 Unity 应用程序的交互,用户可以利用输入系统包 (com.unity.inputsystem) 提供的“触摸支持”。要了解有关visionOS 上的Windows 组件设计的更多信息,请访问Apple 的visionOS 人机界面指南。

2.1.3 VisionOS 上的完全沉浸式 VR

借助 Unity,用户可以利用熟悉的工作流程为 VisionOS构建完全沉浸式体验,包括虚拟现实游戏或完全虚拟环境。如今,Unity 提供了广泛的功能和 API,可用于为 VisionOS 开发完全沉浸式的体验。此类插件包括:

  • visionOS plug-in
  • XR Interaction Toolkit
  • XR Core Utilities
  • Input System
  • VR project template
  • Hand tracking

在 Unity 中构建 VR 内容后,只需在 XR 插件管理窗口中选择VisionOS - 完全沉浸式,选择并构建 VisionOS 平台,重新编译本机插件,然后就会生成 Unity XCode 项目文件。从这里开始,您将继续在 XCode 中进行开发过程,在这里您可以探索窗口内容和完全沉浸式内容之间转换等概念。

将 VR 体验移植到 VisionOS

对于希望移植现有 VR 游戏并希望将其作为完全沉浸式体验的用户来说,除了上一节中阐述的构建工作流程之外,您还可以采取一些措施来使过渡更加顺畅。

1. 准备图形

使用通用渲染管线 (URP) –VisionOS 支持 Foveated Rendering,该技术可为 Vision Pro 上的用户提供更高质量的视觉体验。为了利用 Foveated Rendering 功能,我们建议使用 URP,它允许在整个管道中应用 Foveated Rendering。我们还计划将未来的改进重点放在 URP 上。\ **利用单通道实例渲染 – **Unity 的单通道实例渲染现在支持 Metal    Graphics API,并将默认启用。这减少了渲染管道某些部分(例如剔除和阴影)的开销,并且还有助于减少以立体方式渲染场景时的 CPU 开销。\ **确保每个像素的深度缓冲区不为零 - **在visionOS上,深度缓冲区用于重投影。为了确保天空盒和着色器等视觉效果完美显示,请确保将某个值写入每个像素的深度。\

2. 使基于控制器的交互适应手部

利用XR Interaction Toolkit (XRI)  借助 VisionOS,人们将用手和眼睛与内容进行交互。XRI 提供了一种高级交互,可以抽象手部跟踪的实现,并可以轻松地在 3D 空间和 3D 空间世界的 UI 中实现悬停、抓取和选择等交互。通过 XRI,您还可以实现输入的视觉反馈,其输入的抽象也使得一次创作即可用于多个平台。\ Dive into Unity Hands package - 如果您希望在输入操作中获得更大的灵活性,Unity 的 Hands 子系统可以通过 Unity Hands 包提供对所有原始手部关节数据的访问。您还可以了解如何利用 Unity Hands 包以获得上述沉浸式体验。

有关将 VR 体验移植到 VisionOS 的更多信息,我们建议观看本指南“将您的 Unity VR 应用程序带入完全沉浸式空间”。

2.2 VisionOS PolySpatial 要求和限制

2.2.1 要求

2.2.1.1 Unity版本

Unity PolySpatial 及其对visionOS 的支持需要Unity 2022.3 (LTS) 或更高版本。 不支持 2022.3 之前的 Unity 版本。

开发人员可以在没有 PolySpatial Beta 的情况下开始使用现有项目,只需将其升级到 2022.3,然后再开始处理 VisionOS 移植。

2.2.1.2 硬件、操作系统和 Xcode

  • 编译visionOS 目前需要Xcode 15 beta 2。
  • 您当前必须使用 Apple Silicon (M1/M2) Mac 才能针对visionOS 进行编译。

有关开发设置的更多信息,请参阅开发和迭代

2.2.1.3 图形

在visionOS上,Unity将所有渲染委托给平台,以便操作系统能够提供最佳性能、电池寿命和渲染质量,同时考虑到当前运行的所有混合现实应用程序。这对可用的图形功能施加了很大的限制。

RealityKit 上的渲染很可能与 Unity 渲染中存在视觉差异。我们不断努力提高 Unity 和 RealityKit 之间的视觉等效性,但请注意两者之间存在差异。

2.2.1.4 渲染管线

您的项目必须使用通用渲染管道 (URP) 或内置渲染管道。URP优先;如果您正在考虑迁移您的项目,这将是一个很好的机会。迁移文档可用于从内置管道迁移到 URP:使用我们的高级指南转向通用渲染管道 | Unity 博客

2.2.1.5 着色器和材质

您可以使用 Unity ShaderGraph 的子集为visionOS 编写自定义着色器。在幕后,这会转换为 MaterialX。不支持 ShaderLab 和其他编码着色器,因为 VisionOS 的 RealityKit 不公开低级着色语言。

每个管道的几个重要标准着色器已映射到最接近的可用 RealityKit 模拟。目前的支持包括:

  • 标准 URP 着色器:Lit、Simple Lit、Unlit(+TBD - 更多即将推出)
  • 标准内置着色器:标准,(+待定 - 更多即将推出)

有关更多信息,请参阅PolySpatial 材质支持

2.2.2 已知限制

目前,Unity PolySpatial XR 作为 alpha 产品发布。由于这是一个早期版本,预计文档、工作流程,尤其是 API 会发生更改,因此在规划项目时请考虑到这一点。

请参阅支持的 Unity 功能和组件,了解哪些 Unity 功能无需修改即可使用以及哪些功能需要重新考虑。

有关此平台支持的材质的信息,请参阅PolySpatial 材质支持ShaderGraph 支持了解有关通过 Unity ShaderGraph 和 MaterialX 实现自定义着色器的详细信息。

2.3 开发与迭代

2.3.1 先决条件

请参阅visionOS PolySpatial 要求和限制,了解有关支持的硬件、软件和 Unity 功能的信息。

2.3.2 启用 PolySpatial 运行时

visionOS 对混合现实的支持由 Unity PolySpatial 提供,可以通过选项Edit > Project Settings > PolySpatial > Enable PolySpatial Runtime进行切换。

2.3.3 迭代与预览

Unity 提供了多个选项来迭代和预览针对visionOS 的内容。这些选项与 Unity 对其他非桌面平台的支持相当。

2.3.4 游戏模式

预览内容的最快方法是在 Unity 编辑器中进入播放模式。这提供了最快的迭代周期,但使用 Unity 的渲染系统而不是 RealityKit。此模式针对快速迭代进行了优化,例如迭代游戏玩法或用户体验,但可能并不总是能够忠实地表示目标平台的视觉效果或性能特征。视觉效果、优化和类似任务通常受益于 Unity 提供的其他预览选项。此外,播放模式目前无法预览卷或visionOS 提供的新输入模式。

为了更好地近似visionOS运行时,PolySpatial应用程序的播放模式创建了一个并行的支持游戏对象层次结构,这些对象链接到应用程序的模拟游戏对象,但执行所有渲染。这意味着您将根据Enable PolySpatial Runtime项目设置的状态观察到一些差异。这些差异是有意为之的,因为它们允许开发人员更好地预览其内容在设备上的外观。

2.3.5 visionOS Player 构建。

从“构建设置”窗口中选择visionOS,以针对visionOS 进行构建。构建设置中的大多数选项与为 iOS 提供的选项类似。VisionOS 播放器构建将生成一个需要在 Mac 上编译的 Xcode 项目(目前,这必须是带有 Apple 芯片的 Mac),但可能针对 VisionOS 模拟器或连接到 Mac 的 Apple Vision Pro 耳机。

注意:与 iOS 不同,无需在“项目设置”中切换到不同的 SDK 即可在模拟器中运行您的内容。只需在 Xcode 中选择 RealityDevice 模拟器目标即可。

要构建开发套件,请确保您已为 Apple 开发(包括 VisionOS)平台设置有效的配置文件和签名证书。您还需要确保设备已正确注册到您的开发帐户。

2.3.6 录制与回放

PolySpatial for VisionOS 支持独特的录制和回放工作流程,允许您录制会话(包括输入命令),然后在 Unity 编辑器中回放。有关详细信息,请参阅有关PolySpatial 工具的信息

调试支持

使用 PolySpatial 时,标准调试工作流程正常工作。您可以在构建设置中启用脚本调试,并可选择等待托管调试器。然后将托管调试器/IDE 连接到正在运行的应用程序并调试脚本代码。

2.3.7 PolySpatial XR 中的构建块

构建块系统是场景视图中的一个覆盖窗口,可以帮助您快速访问项目中的常用项目。要打开构建块叠加,请单击场景视图上的汉堡菜单 > 叠加菜单,或者将鼠标移到场景视图上并按“波形符”键。然后只需启用 Building Blocks 叠加即可。

您可以在XR Core Utils 包中找到有关构建块系统的更多信息。

相关文章:

(二)VisionOS平台概述

2.VisionOS平台概述 1. VisionOS平台概述 Unity 对VisionOS的支持将 Unity 编辑器和运行时引擎的全部功能与RealityKit提供的渲染功能结合起来。Unity 的核心功能(包括脚本、物理、动画混合、AI、场景管理等)无需修改即可支持。这允许游戏和应用程序逻…...

菜单中的类似iOS中开关的样式

背景是我们有需求,做类似ios中开关的按钮。github上有一些开源项目,比如 SwitchButton, 但是这个项目中提供了很多选项,并且实际使用中会出现一些奇怪的问题。 我调整了下代码,把无关的功能都给删了,保留核…...

Vue 2 动态组件和异步组件

先阅读 【Vue 2 组件基础】中的初步了解动态组件。 动态组件与keep-alive 我们知道动态组件使用is属性和component标签结合来切换不同组件。 下面给出一个示例&#xff1a; <!DOCTYPE html> <html><head><title>Vue 动态组件</title><scri…...

MongoDB升级经历(4.0.23至5.0.19)

MongoDB从4.0.23至5.0.19升级经历 引子&#xff1a;为了解决MongoDB的两个漏洞决定把MongoDB升级至最新版本&#xff0c;期间也踩了不少坑&#xff0c;在这里分享出来供大家学习与避坑~ 1、MongoDB的两个漏洞 漏洞1&#xff1a;MongoDB Server 安全漏洞(CVE-2021-20330) 漏洞2…...

iPhone上的个人热点丢失了怎么办?如何修复iPhone上不见的个人热点?

个人热点功能可将我们的iPhone手机转变为 Wi-Fi 热点&#xff0c;有了Wi-Fi 热点后就可以与附近的其他设备共享其互联网连接。 一般情况下&#xff0c;个人热点打开就可以使用&#xff0c;但也有部分用户在升级系统或越狱后发现 iPhone 的个人热点消失了。 iPhone上的个人热点…...

AI 媒人:为什么图形神经网络比 MLP 更好?

一、说明 G拉夫神经网络&#xff08;GNN&#xff09;&#xff01;想象他们是人工智能世界的媒人&#xff0c;通过探索他们的联系&#xff0c;不知疲倦地帮助数据点找到朋友和人气。数字派对上的终极僚机。 现在&#xff0c;为什么这些GNN如此重要&#xff0c;你问&#xff1f;好…...

信息学奥赛一本通 1984:【19CSPJ普及组】纪念品 | 洛谷 P5662 [CSP-J2019] 纪念品

【题目链接】 ybt 1984&#xff1a;【19CSPJ普及组】纪念品 洛谷 P5662 [CSP-J2019] 纪念品 【题目考点】 1. 动态规划&#xff1a;完全背包 【解题思路】 由于小伟每天都可以买卖物品无限次&#xff0c;我们可以假想每天开始时&#xff0c;他把所有的商品都卖出&#xff…...

JVM——JVM参数指南

文章目录 1.概述2.堆内存相关2.1.显式指定堆内存–Xms和-Xmx2.2.显式新生代内存(Young Ceneration)2.3.显示指定永久代/元空间的大小 3.垃圾收集相关3.1.垃圾回收器3.2.GC记录 1.概述 在本篇文章中&#xff0c;你将掌握最常用的 JVM 参数配置。如果对于下面提到了一些概念比如…...

马上七夕到了,用各种编程语言实现10种浪漫表白方式

目录 1. 直接表白&#xff1a;2. 七夕节表白&#xff1a;3. 猜心游戏&#xff1a;4. 浪漫诗句&#xff1a;5. 爱的方程式&#xff1a;6. 爱心Python&#xff1a;7. 心形图案JavaScript 代码&#xff1a;8. 心形并显示表白信息HTML 页面&#xff1a;9. Java七夕快乐&#xff1a;…...

Spring Clould 注册中心 - Eureka,Nacos

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Eureka 微服务技术栈导学&#xff08;P1、P2&#xff09; 微服务涉及的的知识 认识微服务-服务架构演变&#xff08;P3、P4&#xff09; 总结&#xff1a; 认识微服务-微服务技…...

使用appuploader工具发布证书和描述性文件教程

使用APPuploader工具发布证书和描述性文件教程 之前用AppCan平台开发了一个应用&#xff0c;平台可以同时生成安卓版和苹果版&#xff0c;想着也把这应用上架到App Store试试&#xff0c;于是找同学借了个苹果开发者账号&#xff0c;但没那么简单&#xff0c;还要用到Mac电脑的…...

【面试八股文】每日一题:谈谈你对IO的理解

谈谈你对IO的理解 每日一题-Java核心-谈谈你对对IO的理解【面试八股文】 1.Java基础知识 Java IO&#xff08;Input/Output&#xff09;是Java编程语言中用于处理输入和输出的一组类和接口。它提供了一种在Java程序中读取和写入数据的方法。 Java IO包括两个主要的部分&#x…...

200. 岛屿数量

思路&#xff1a;遍历整个矩阵&#xff0c;对每个格子执行以下操作&#xff1a; 如果格子是陆地&#xff08;‘1’&#xff09;&#xff0c;则将其标记为已访问&#xff08;‘0’&#xff09;&#xff0c;并从当前位置开始进行深度优先搜索&#xff0c;将与当前格子相邻的陆地都…...

【LeetCode】581.最短无序连续子数组

题目 给你一个整数数组 nums &#xff0c;你需要找出一个 连续子数组 &#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。 请你找出符合题意的 最短 子数组&#xff0c;并输出它的长度。 示例 1&#xff1a; 输入&#xff1a;nums [2,6…...

曲面(弧面、柱面)展平(拉直)瓶子标签识别ocr

瓶子或者柱面在做字符识别的时候由于变形&#xff0c;识别效果是很不好的 或者是检测瓶子表面缺陷的时候效果也没有展平的好 下面介绍两个项目&#xff0c;关于曲面&#xff08;弧面、柱面&#xff09;展平&#xff08;拉直&#xff09; 项目一&#xff1a;通过识别曲面的6个点…...

知识继承概述

文章目录 知识继承第一章 知识继承概述1.背景介绍第一页 背景第二页 大模型训练成本示例第三页 知识继承的动机 2.知识继承的主要方法 第二章 基于知识蒸馏的知识继承预页 方法概览 1.知识蒸馏概述第一页 知识蒸馏概述第二页 知识蒸馏第三页 什么是知识第四页 知识蒸馏的核心目…...

深度剖析数据在内存中的存储

目录 一、数据类型介绍 类型的基本归类 1.整形家族 2.浮点数家族 3.构造类型 &#xff08;自定义类型&#xff09; 4.指针类型 5.空类型 二、整形在内存中的存储 1.原码、反码、补码 1.1原码 1.2反码 1.3补码 1.4计算规则 2 .大小端介绍 三、浮点型在内存中的存…...

【ARM Linux 系统稳定性分析入门及渐进10 -- GDB 初始化脚本介绍及使用】

文章目录 gdb 脚本介绍gdb 初始化脚本使用启动 gdb 的时候自动执行脚本gdb运行期间执行命令脚本 gdb 脚本介绍 GDB脚本是一种使用GDB命令语言编写的脚本&#xff0c;可以用来自动化一些常见的调试任务。这些脚本可以直接在GDB中运行&#xff0c;也可以通过GDB的-x参数或source…...

AQS源码解读

文章目录 前言一、AQS是什么&#xff1f;二、解读重点属性statehead、tail 同步变量竞争acquire 同步变量释放 总结 前言 AQS是AbstractQueuedSynchronizer的缩写&#xff0c;也是大神Doug Lea的得意之作。今天我们来进行尽量简化的分析和理解性的代码阅读。 一、AQS是什么&am…...

QT实现天气预报

1. MainWindow类设计的成员变量和方法 public: MainWindow(QWidget* parent nullptr); ~MainWindow(); protected: 形成文本菜单来用来右键关闭窗口 void contextMenuEvent(QContextMenuEvent* event); 鼠标被点击之后此事件被调用 void mousePressEvent(QMouseEv…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

mac 安装homebrew (nvm 及git)

mac 安装nvm 及git 万恶之源 mac 安装这些东西离不开Xcode。及homebrew 一、先说安装git步骤 通用&#xff1a; 方法一&#xff1a;使用 Homebrew 安装 Git&#xff08;推荐&#xff09; 步骤如下&#xff1a;打开终端&#xff08;Terminal.app&#xff09; 1.安装 Homebrew…...

「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案

在移动互联网营销竞争白热化的当下&#xff0c;推客小程序系统凭借其裂变传播、精准营销等特性&#xff0c;成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径&#xff0c;助力开发者打造具有市场竞争力的营销工具。​ 一、系统核心功能架构&…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...