Unity 集成 FMOD 音频管理插件 2.02

news2024/11/23 22:14:53

Unity 集成 FMOD 音频管理插件 2.02

    • 3. 集成教程:
      • 3.1 设置Unity项目
      • 3.2 设置FMOD项目
      • 3.3 设置 FMOD for Unity
      • 3.4 添加声音:卡丁车引擎
      • 3.5 添加声音:氛围
      • 3.6 添加声音:音乐
      • 3.7 删除现有音频
      • 3.8 下一步
    • 10. 脚本 API 参考
      • 10.1 基础知识
      • 10.2 Unity Inspector 中的浏览器 UI
      • 10.2.1 事件
      • 10.2.2 BANK
      • 10.2.3 全局参数
    • 11 FMOD [主页链接](https://www.fmod.com/)

3. 集成教程:

本指南将向您展示如何开始使用 FMOD for Unity。您将采用现有的Unity项目,安装FMOD for Unity,并集成使用FMOD Studio创建的自适应音频。一步一步地跟着走,听听结果。完成本教程后,您应该有足够的知识将 FMOD 内容集成到任何 Unity 项目中。

您将使用的 Unity 项目是卡丁车微型游戏模板,这是一款专为学习而开发的 3D 卡丁车赛车游戏。为简单起见,您将使用 FMOD 示例项目中的音频内容。观看下面的视频,预览我们将要进行的更改:

前后对比一下我们将对卡丁车小游戏所做的更改。

让我们开始吧!

3.1 设置Unity项目

1 访问 Unity 网站并使用“下载 Unity Hub”按钮安装 Unity Hub。

2 登录 Asset Store 并从 Asset Store 将 Karting Microgame 添加到您的资产中。

3 运行 Unity Hub 并重新登录。

4 在 Unity Hub 中,单击“新建项目”。
请添加图片描述
5 单击“所有模板”,然后滚动到“卡丁车微型游戏”磁贴。
请添加图片描述
6 单击下载模板。
请添加图片描述
7 如果您尚未安装 Unity 引擎,系统将提示您安装一个引擎。如果您安装了兼容的引擎,请跳到步骤 8。
请添加图片描述
如果您看到以下消息:

a. 单击安装编辑器。
b. 在出现的提示符中,选择受支持的 Unity 版本(在 Karting Microgame 的 Asset Store 页面中注明),然后单击安装。
请添加图片描述
c. 单击“安装”
请添加图片描述
d. 等待安装完成,在 Unity Hub 的“安装”部分。
e. 完成后,再次单击“新建项目”,然后选择“卡丁车微型游戏”(如步骤 4 和 5 所示)。

8 输入项目名称,然后单击“创建项目”。

Unity 将打开并导入项目数据。这可能需要一些时间。 在 Windows 上,您可能需要接受任何提示才能允许防火墙访问。
打开Unity后,您将看到一个欢迎对话框,说明如何开始使用卡丁车微型游戏教程。

9 欢迎对话框可引导您完成 Unity 的 Karting Microgame 教程。由于我们没有遵循它,我们可以通过单击窗口右上角的叉号来关闭“欢迎”对话框。
请添加图片描述
10 在屏幕右侧,您会看到“教程”选项卡。同样,这在 Unity 的教程中使用,因此我们也可以通过单击菜单下拉列表并从菜单中选择“关闭选项卡”来关闭它。
请添加图片描述

让我们试着玩卡丁车游戏,听听目前的情况。

11 单击 Unity 窗口顶部的播放按钮。

游戏将在编辑器中开始播放。

12 使用键盘上的箭头键开始驾驶。

正如你所听到的,发动机的声音非常安静。我们可以暂时禁用音乐来听到引擎 - 但在进行任何更改之前,让我们保存此项目的新副本。

13 从菜单栏中选择“文件”>“退出”。
请添加图片描述
14 系统将提示您保留该项目。选择“保留”。
请添加图片描述
15 选择项目的保存位置和名称。

16 若要重新打开项目,请再次打开 Unity Hub。

17 从“项目”部分中,选择刚刚保存的项目。(有时 Unity Hub 不会显示较旧的项目。如果未显示项目,请单击“添加”按钮并导航到之前保存项目的位置。
请添加图片描述

等待项目在 Unity 中重新打开,然后再次单击播放按钮。

18 在游戏运行时,在左侧的“层次结构”选项卡中选择“BackgroundMusic”游戏对象。

19 取消选中右侧“检查器”窗格中的“音频源”组件。
请添加图片描述
20 使用方向键继续行驶。

21 听完引擎后,单击播放按钮退出游戏。

引擎的声音,以及游戏的一般音频,可能需要一些改进。我们可以使用 FMOD 来做到这一点。

3.2 设置FMOD项目

我们的计划是使用 FMOD Studio 示例中的音频内容。为此,我们需要安装 FMOD Studio 创作工具并创建一个新的 FMOD
Studio 项目。

1 转到 FMOD。

2 单击下载。

3 登录或创建帐户。

4 在下载页面上,单击 FMOD Studio Suite 部分将其展开,然后选择 2.02 子部分。

5 单击适合您正在使用的计算机平台(Windows 或 Mac)的下载链接。
请添加图片描述

FMOD for Unity的“Unity Verified”版本经过 Unity 的 QA 测试和认证,是兼容的解决方案。

6 运行下载的安装程序并按照安装说明进行操作。

接下来,让我们复制 FMOD Studio 附带的示例项目。

7 通过从 Windows 上的“开始”菜单或 Mac 上的“应用程序”文件夹中选择它来运行 FMOD Studio。 (在 Windows 上,接受任何允许防火墙访问的提示。

8 在欢迎对话框中,从“最近使用的项目”列表中选择 Examples.fspro 项目。(在 Mac 上,如果未显示 Examples.fspro,请单击“打开项目”以手动找到它。示例项目位于 FMOD Studio 安装目录的 examples 文件夹中。
请添加图片描述
9 从菜单栏中,选择“文件”>“另存为…”。
请添加图片描述
10 选择项目的保存位置和名称。当我们告诉Unity在哪里可以找到FMOD项目时,我们可以将项目保存在我们喜欢的任何位置。请勿在之前创建的 Unity 项目的 Assets 文件夹中选择位置。

示例项目包含许多事件。 在 FMOD中,事件是可以通过游戏代码控制的声音内容单元。游戏中发出声音的所有内容都应该有相应的事件。事件包含音频文件和播放逻辑。
在我们的游戏中,卡丁车的引擎将有自己的事件。 在本指南中,我们将使用 Kart 引擎示例项目中的现有事件。我们稍后将介绍如何创建新事件。

11 在窗口左侧的“事件”浏览器中,选择“车辆>驾驶式割草机”。该事件将显示在编辑器中。
请添加图片描述
12 单击传输栏中的播放按钮以试听事件。

13 在传输栏中拖动 RPM 滑块。
请添加图片描述

您应该听到以各种 RPM 播放的更准确的发动机声音模型。 我们的 Unity
游戏可以简单地播放此事件,在游戏过程中发送任何相关参数数据,例如 RPM 值。

14 单击停止按钮以停止试镜活动。
Setting up the FMOD Project

下一步是将我们的 FMOD 活动构建到银行中。稍后,我们将在 Unity 中加载库。

15 在菜单栏中,选择“文件”>“生成…”。
请添加图片描述

这些库将构建到 FMOD Studio 项目中的文件夹中。

3.3 设置 FMOD for Unity

现在,我们已准备好将银行加载到Unity中,以便可以触发卡丁车事件。首先,我们需要导入 FMOD for Unity。

1 在浏览器中导航到 FMOD for Unity。

请注意,在 Unity 2019.4 及更早版本中,资源存储会在“资源存储”窗口中打开。在搜索栏中搜索“FMOD for Unity”。

2 检查资产的主要版本是否与您的 FMOD Studio 版本匹配,即 2.02.xx(此外,由于包含程序集定义,本指南至少需要 2.02.04)。如果不匹配,请改为从 FMOD 网站下载。

3 单击“添加到我的资产”按钮。

在 Unity 2019.4 及更早版本中,此按钮标记为“下载”。

4 确保您已再次登录 Unity 帐户。

5 在 Unity 2020.1 及更高版本中,从 Unity 的菜单栏导航到 Window > Package Manager。

6 在“包管理器”窗口中,确保左上角的第二个下拉列表设置为“我的资产”。

7 选择 FMOD for Unity 资源,然后单击右下角的下载。

8 在包列表中选择“FMOD For Unity”,然后单击“下载”。下载完成后,单击“导入”按钮。

9 系统将提示您输入资产列表,将它们全部勾选,然后单击“导入”按钮。
请添加图片描述

(如果您使用的是 MacOS 10.15 Catalina,此时可能会遇到警告。如果是这样,请参阅以下内容:Catalina)。

10 “FMOD Setup Wizard”(FMOD 设置向导)窗口打开。单击“开始”。
请添加图片描述

11 下一页用于更新现有的 FMOD For Unity 设置。由于这是第一次,因此单击“下一步”。
请添加图片描述
12 选择 FMOD Studio 项目按钮,选择 FMOD Studio 项目文件夹中的文件(如前所述),然后单击下一步。*.fspro
请添加图片描述
13 下一页是删除原生 Unity 侦听器并将其替换为 FMOD 侦听器。单击“将 Unity 侦听器替换为 FMOD 音频侦听器”,然后单击“下一步”。
请添加图片描述
14 此页面用于禁用 Unity 的内置音频引擎。由于我们使用 FMOD 引擎处理音频,因此 Unity 内置音频引擎无需不断消耗资源。单击禁用内置音频按钮。
请添加图片描述
15 此页面将列出 Unity 项目中的所有 AudioSource Unity 组件。这对于导航到 Unity 项目中的所有 AudioSource 组件非常有用,以便您可以根据需要禁用或删除。由于我们想充分了解如何添加 FMOD 事件发射器组件并进一步操作它们,因此请保持此页面不变并单击下一步。
请添加图片描述
16 下一页用于复制在将 FMOD for Unity 与 Unity 项目一起使用时忽略某些文件和文件夹的规则。由于我们未将此 Unity 项目添加到源代码管理存储库,因此请单击“下一步”。
请添加图片描述
17 最后一页是使用 FMOD for Unity 向导执行的所有任务的列表。由于这是一个新项目,并且没有更改 Unity AudioSources,因此“更新”和“Unity 源”选项卡被列为“不完整”。这是意料之中的,因此请关闭设置向导,让我们开始将我们的事件放入 Unity 游戏中。
请添加图片描述

玩游戏并确保“日志”选项卡中没有显示错误。

祝贺!现在,您已经完成了 FMOD for Unity 的基本设置。本指南的其余部分将重点介绍如何将 FMOD 事件添加到卡丁车微型游戏中。

3.4 添加声音:卡丁车引擎

如前所述,我们希望玩家的卡丁车使用 Ride-on Mower FMOD 事件。首先,让我们添加一个组件来触发事件。

1 在左侧的“层次结构”选项卡中选择 KartClassic_Player/ArcadeEngineAudio 游戏对象。
请添加图片描述
2 单击 Inspector 选项卡底部的添加组件。

3 选择 FMOD Studio > FMOD Studio 事件发射器。
请添加图片描述
4 将“Play Event”字段设置为“对象启动”。
请添加图片描述
5 单击“事件”字段旁边的搜索按钮。

6 在浏览器弹出窗口中,双击 Events > Vehicles > Ride-on Mower。
请添加图片描述
7 在“初始参数值”部分下,从下拉列表中添加 RPM 并将值设置为 1000。
请添加图片描述

玩游戏。您现在应该听到卡丁车引擎以 1000 的恒定 RPM 值播放。 我们需要做的是将卡丁车的物理特性确定的 RPM 值与 FMOD事件联系起来。为此,我们将编辑现有的引擎音频 C# 脚本,以将 RPM 值传递给我们的事件。
但是,我们需要编辑的脚本使用程序集定义文件分配给自定义 KartGame 程序集。这意味着,在我们使 KartGame 程序集引用 FMODUnity 程序集之前,它将无法访问 FMOD 脚本。

8 在窗口底部的“项目”选项卡中,导航到“Assets > Karting > Scripts > KartGame”。

9 在检查器的“组件定义参照”(Assembly Definition References) 部分中,单击“+”按钮。

10 单击新组件定义参考上的目标图标,然后选择 FMODUnity 组件。
请添加图片描述

11 单击检查器底部的“应用”按钮。

现在,我们可以对引擎音频脚本进行更改。

12 在左侧的“层次结构”选项卡中选择 KartClassic_Player/ArcadeEngineAudio 游戏对象。

13 单击 Inspector 窗格中 Arcade Engine Audio 脚本组件上的上下文菜单图标。

14 选择“编辑脚本”。
请添加图片描述

15 脚本文件将在默认代码编辑器中打开。

16 我们需要用自己的代码替换现有代码,因此选择下面的所有代码并按 Cmd/Ctrl + C 进行复制。然后返回代码编辑器,按 Cmd/Ctrl + A 全选,然后按 Cmd/Ctrl + V 粘贴此代码:

using UnityEngine;

namespace KartGame.KartSystems
{
    /// <summary>
    /// This class produces audio for various states of the vehicle's movement.
    /// </summary>
    public class ArcadeEngineAudio : MonoBehaviour
    {
        public float minRPM = 0;
        public float maxRPM = 5000;
        ArcadeKart arcadeKart;

        void Awake()
        {
            arcadeKart = GetComponentInParent<ArcadeKart>();
        }

        void Update()
        {
            float kartSpeed     = arcadeKart != null ? arcadeKart.LocalSpeed() : 0;
            // set RPM value for the FMOD event
            float effectiveRPM = Mathf.Lerp(minRPM, maxRPM, kartSpeed);
            var emitter = GetComponent<FMODUnity.StudioEventEmitter>();
            emitter.SetParameter("RPM", effectiveRPM); //核心代码
        }
    }
}

17 保存脚本并关闭文本编辑器。

再次玩游戏。发动机声音会随着您加速而变化。但是,发动机仍然需要一些调整。

18 确保在“层次结构”选项卡中仍选择“KartClassic_Player/ArcadeEngineAudio 游戏对象”。

19 在“引擎音频”脚本组件下,将“最小 RPM”设置为 500,将“最大 RPM”设置为 2000,以匹配 Ride-on Mower 事件的合理范围。
请添加图片描述

再次玩游戏。卡丁车引擎听起来应该好多了!

3.5 添加声音:氛围

现在我们已经让卡丁车引擎正常工作,让我们为音景添加一些氛围。

1 在左侧的“层次结构”选项卡中选择“BackgroundMusic”游戏对象。

2 单击 Inspector 选项卡底部的添加组件。

3 选择 FMOD Studio > FMOD Studio 事件发射器。
请添加图片描述
4 将“Play Event”字段设置为“对象启动”。

5 单击“事件”字段旁边的搜索按钮。

6 在浏览器弹出窗口中,双击 Events > Ambience > City。

7 在“初始参数值”部分下,从下拉列表中添加“流量”并将值设置为 0.3。
请添加图片描述

再次玩游戏。您应该听到城市氛围充满了音景。

3.6 添加声音:音乐

到目前为止,我们一直在使用 FMOD 示例项目中的事件。让我们尝试创建一个新事件。

这将是一个复制原始游戏循环背景音乐的简单事件。

1 在 FMOD Studio 中,右键单击(或在 Mac 上按住 Command 键单击)“音乐”文件夹,然后选择“事件默认值”>“2D 时间轴”。
请添加图片描述
2 输入活动名称:“卡丁车音乐”。

3 若要将事件分配给库进行导出,请在“事件”浏览器中右键单击(或在 Mac 上按住 Command 键单击)该事件,选择“分配给库”,然后选择“音乐库”。
请添加图片描述

我们将在新的FMOD活动中重用Unity项目中的原创音乐。

4 在 Unity 编辑器中,在窗口底部的“项目”选项卡中,导航到“资源”>“卡丁车”>“音频>音乐”。

5 右键单击(或在 Mac 上按住 Command 键单击)“音乐”资源,然后选择“在资源管理器中显示”(或在 Mac 上选择“在 Finder 中显示”)。
请添加图片描述
6 将 Music.mp3 文件从资源管理器(在 Mac 上为 Finder)窗口拖到 FMOD Studio 事件编辑器窗口,将其拖放到编辑器窗格中 Audio 1 轨道的正文上以创建音频。
请添加图片描述
7 单击播放按钮并确保可以听到音乐。

8 单击停止按钮结束试镜。

与原版游戏一样,我们希望音乐能够连续循环播放。

9 在前面步骤中创建的仪器上单击鼠标右键(或在 Mac 上按住 Command 键单击),然后选择“新建循环区域”。

播放事件,并观察音乐在到达循环区域的末尾时是否循环。
音乐将单独路由到音效。这样可以很容易地在以后调整混音。

10 在菜单栏中,选择 Window > Mixer。这将打开 Mixer 窗口。
请添加图片描述
11 在 Mixer 窗口的 Routing 浏览器中,将“Music/Kart Music”事件拖到“Music”组中。
请添加图片描述

我们需要构建BANK文件,将新的卡丁车音乐活动纳入游戏中。

12 在菜单栏中,选择“文件”>“生成…”。

接下来,让我们在游戏中触发这个事件。

13 在 Unity 中,在左侧的“层次结构”选项卡中选择“BackgroundMusic”游戏对象。

14 单击 Inspector 选项卡底部的添加组件。

15 选择 FMOD Studio > FMOD Studio 事件发射器。

16 将“Play Event”字段设置为“Object Start”。

17 单击“事件”字段旁边的搜索按钮。

18 在浏览器弹出窗口中,双击“事件”>“音乐”>“卡丁车音乐”。
请添加图片描述

玩游戏以听到播放的背景音乐。 正如你所听到的,这有效地复制了原始游戏的音乐播放。但是,您会发现背景音乐淹没了引擎的声音。
我们可以使用实时更新在FMOD中快速调整声音。这适用于 Unity 编辑器和独立构建。

19 在 Unity 窗口中,单击播放按钮并确保游戏正在运行。

20 在 FMOD Mixer 窗口中,单击窗口底部的 Live Update 按钮。

21 确保选择“localhost”地址。这使我们能够连接到与 FMOD Studio 在同一台机器上运行的游戏。

22 单击“连接”按钮。
请添加图片描述

请注意,窗口底部的“实时更新”按钮现在突出显示,混音器中的电平表显示游戏中听到的内容。
请添加图片描述

23 找到调音台上的音乐组。您可能需要向右滚动才能找到它。
请添加图片描述
向下拖动音量推子,将其设置为 -6dB。
请添加图片描述

音乐应立即降低音量。
实时更新可以快速迭代游戏的音频。
请添加图片描述
现在是尝试根据自己的喜好调整事情的好时机。例如,单击“音乐”组后,您会发现您可以在卡座中编辑声像和音高设置,或者添加 DSP 效果来更改声音质量。
请注意,如果断开实时更新的连接,则在退出播放模式时,Unity 中的音频将恢复到以前构建的状态。要提交更改,请在 FMOD Studio 中重建库。

3.7 删除现有音频

在开始添加 FMOD Studio 事件之前,最好删除项目中当前存在的预先存在的 Unity AudioSource。

1 导航到 FMOD > 设置向导,然后单击 Unity Sources 选项卡。从其列表中选择以下游戏对象以自动导航到它们(或者,可以在 Unity 编辑器的“层次结构”选项卡中找到这些对象):

a 游戏管理器/游戏HUD
b 背景音乐
c KartClassic_Player/ArcadeEngine音频/引擎空闲
d KartClassic_Player/ArcadeEngine音频/engine_start
e KartClassic_Player/ArcadeEngine音频/引擎运行
f KartClassic_Player/ArcadeEngine音频/引擎反转
g KartClassic_Player/街机引擎音频/漂移
请添加图片描述
2 对于这些游戏对象中的每一个:

a 选择游戏对象
v 单击右侧“检查器”窗格中“音频源”组件上的上下文菜单图标。
c 选择“删除组件”。

从 GameManager/GameHUD 对象中删除音频源将导致反馈 Flash HUD
脚本中出现错误。要解决这个问题,我们需要编辑FeedbackFlashHUD.cs。

3 选择 GameManager/GameHUD 对象。

4 向下滚动到“检查器”选项卡中的“反馈闪光 HUD”组件,然后单击上下文菜单图标。

5 选择“编辑脚本”,在默认代码编辑器中打开脚本文件。

6 删除所有包含 的行。m_audioSource

7 保存脚本并关闭文本编辑器。

还有一个 Game Flow Manager 组件,用于在通过最终检查点时创建 AudioSource
组件。为了摆脱这种情况,我们需要编辑GameFlowManager.cs。

8 选择 GameManager 对象。

9 向下滚动到 Game Flow Manager 组件,然后单击上下文菜单图标。

10 选择“编辑脚本”,在默认代码编辑器中打开脚本文件。

11 删除所有包含 的行。audioSource

12 保存脚本并关闭文本编辑器。

还有一些组件会调用(创建 AudioSource
组件)以在您撞到墙或通过检查点时播放声音效果。为了摆脱这些,我们需要编辑AudioUtility.cs。AudioUtility.CreateSFX

13 在窗口底部的“项目”选项卡中,导航到“AudioUtility”>“AudioUtility”>“Assets > Scripts > Utilities”。

14 双击 AudioUtility 脚本以在默认代码编辑器中将其打开。

15 删除函数的内容(第 19-29 行)。CreateSFX

16 保存脚本并关闭文本编辑器。

还有一个 Objective Toast 组件,用于在目标消息出现时创建 AudioSource
组件。为了摆脱这些,我们需要编辑ObjectiveToast.cs。

17 在窗口底部的“项目”选项卡中,导航到 ObjectiveToast > ObjectiveToast > > UI > Assets Karting Scripts。

18 双击 ObjectiveToast 脚本,在默认代码编辑器中将其打开。

19 删除除以 开头的行之外的所有包含的行。PlaySoundvoid PlaySound

20 保存脚本并关闭文本编辑器。

如果您再次玩游戏,警告将得到修复。但是,您可能会注意到起跑线声音继续播放。这些是由 Unity 时间线资源触发的,我们也可以将其删除。

21 在窗口底部的“项目”选项卡中,导航到 Assets > Karting > Timelines > RaceStart。

22 双击 RaceStart 资源以在编辑器中将其打开。请添加图片描述
在显示的“时间轴”选项卡中,单击“音轨”上下文菜单图标,然后选择“删除”。
请添加图片描述

再玩一次游戏。不应听到任何音频,也不应在“日志”选项卡中显示任何警告。

3.8 下一步

在本指南中,您学习了如何将 FMOD 添加到现有 Unity 游戏中。我们还替换并改进了游戏的声音,让世界感觉更加生动。

要了解有关 FMOD 和 Unity 的更多信息,请参阅以下资源:

  • 维京村 - 视频教程系列
  • 生存射击游戏 - 视频教程系列
  • FMOD Studio - 用户手册

10. 脚本 API 参考

FMOD Studio Unity Integration 以 C# 公开完整的 FMOD Core 和 Studio API。

Studio API 用于播放和控制在 FMOD Studio 工具中创建的事件。

核心 API 用于直接播放声音以及事件播放的高级控制。

运行时管理器 API 为编写使用 FMOD Studio 事件的 Unity 游戏组件时的最常见操作提供了帮助程序。

10.1 基础知识

初始化时,它会创建一个 和 一个 .您可以使用其中任何一个和/或所有这些来访问 API。

RuntimeManagerStudio SystemCore System

var studioSystem = FMODUnity.RuntimeManager.StudioSystem;
FMOD.Studio.CPU_USAGE cpuUsage;
studioSystem.getCPUUsage(out cpuUsage);

var coreSystem = FMODUnity.RuntimeManager.CoreSystem;
uint version;
coreSystem.getVersion(out version);

10.2 Unity Inspector 中的浏览器 UI

您可以使用以下方法之一访问自定义 FMOD UI 以选择事件、库和全局参数:

10.2.1 事件

使用 EventReference 类型来保存对 Event 的引用。

public class EventReferenceTest : MonoBehaviour
{
    public FMODUnity.EventReference MyEvent;
}

您将看到以下 UI:
请添加图片描述

10.2.2 BANK

在用于保存 Bank 路径的任何字符串属性上使用属性“[FMODUnity.BankRef]”。

public class BankRefTest : MonoBehaviour
{
    [FMODUnity.BankRef]
    public string MyBank1;
}

您将看到以下 UI:
请添加图片描述

10.2.3 全局参数

在用于保存全局参数路径的任何字符串属性上使用属性“[FMODUnity.ParamRef]”。

public class ParamRefTest : MonoBehaviour
{
    [FMODUnity.ParamRef]
    public string MyParam1;
}

您将看到以下 UI:
请添加图片描述

11 FMOD 主页链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shopee与Lazada卖家如何运用自养号测评稳定提升销量于评价

在跨境电商行业中&#xff0c;测评对于提高产品销量是个非常优秀的辅助方式。作为东南亚电商巨头&#xff0c;Shopee和Lazada这两大主流平台上&#xff0c;卖家竞争也尤为激烈&#xff0c;卖家们不断寻求有效的方法提升自己的产品销量。为了应对这一挑战&#xff0c;测评应运而…

揭秘重庆耶非凡科技:人力RPO项目真的能帮你赚钱吗?

在当今这个快速变化的市场环境中&#xff0c;企业为了降低运营成本、提升管理效率&#xff0c;越来越倾向于将非核心业务外包给专业的服务提供商。其中&#xff0c;人力资源外包(HRO)作为外包领域的重要组成部分&#xff0c;近年来得到了快速发展。重庆耶非凡科技有限公司的人力…

Laravel框架进阶:掌握队列系统,优化应用性能

Laravel使用队列处理 本文主要讲述如何利用 Laravel 框架的队列系统来管理异步任务和设置周期性执行的任务&#xff0c;从而增强应用程序的效能和可靠性。 Laravel队列的优势 异步执行&#xff1a;将任务添加到队列中后&#xff0c;可以立即返回响应给用户&#xff0c;而任务…

AI绘画如何打造高质量数据集?

遇到难题不要怕&#xff01;厚德提问大佬答&#xff01; 厚德提问大佬答11 你是否对AI绘画感兴趣却无从下手&#xff1f;是否有很多疑问却苦于没有大佬解答带你飞&#xff1f;从此刻开始这些问题都将迎刃而解&#xff01;你感兴趣的话题&#xff0c;厚德云替你问&#xff0c;你…

MySQL表的增删改查初阶(上篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

SVNCloud 与 Navicat和IDEA的连接

文章目录 SVNCloud 配置Navicat访问云端数据库与IDEA Java jdbc 的连接 SVNCloud 配置 访问网址&#xff1a;SVN注册账号&#xff0c;进入mysql区域&#xff1a; 数据库管理->创建数据库&#xff0c;输入数据库名称和密码&#xff0c;注意&#xff0c;这里的数据库名称实际…

【机器学习】机器学习在深度学习领域中的作用:半监督学习的视角

&#x1f440;时空之门&#x1f440; &#x1f50d;引言&#x1f388;半监督学习概述&#x1f69d;机器学习在深度学习领域中的作用☘特征提取与表示学习&#x1f340;复杂任务建模❀结合半监督学习提升性能 &#x1f680;半监督学习在深度学习中的应用场景&#x1f4d5;图像识…

如何搭建一台永久运行的个人服务器?

一、前言 由于本人在这段时候&#xff0c;看到了一个叫做树莓派的东东&#xff0c;初步了解之后觉得很有意思&#xff0c;于是想把整个过程记录下来。 二、树莓派是什么&#xff1f; Raspberry Pi(中文名为树莓派,简写为RPi&#xff0c;(或者RasPi / RPI) 是为学习计算机编程…

HarmonyOS开发-鸿蒙UiAbility 组件间跳转

前言 随着春节假期结束各行各业复产复工&#xff0c;一年一度的春招也持续火热起来。最近&#xff0c;有招聘平台发布了《2024年春招市场行情周报&#xff08;第一期&#xff09;》。总体来说今年的就业市场还是人才饱和的状态&#xff0c;竞争会比较激烈。 但是&#xff0c;…

【网络基础1】

文章目录 学习目标一、网络基础11.网络的重要性2.osi7层模式3.协议和osi7层模型的关系4.数据的封装和解封装5.tcp的三次握手6.Ddos攻击讲解7.Tcp的四次挥手 二、网络基础21.文字编码2.IP地址的划分3.子网掩码4.同网段ip才能直接通信5.DNS解析6.DNS解析命令7.短域名为什么值钱8.…

HTTP --tcp和keep-alive

TCP TCP连接 tcp/ip是全球计算机以及网络设备都在使用的一种常见的分组交换网络分层协议集&#xff0c;客户端可以打开一条tcp/ip连接&#xff0c;连接到可能运行在世界各地的服务器应用程序&#xff0c;一旦连接建立起来了&#xff0c;在客户端和服务器的计算机之间交换的报…

Unity 资源 之 风格化地形纹理(Stylized Terrain Textures)免费领取

风格化地形纹理&#xff1a;Stylized Terrain Textures 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们&#xff0c;我们自豪地为大家推荐最新的每周免费资源&#xff1a;风格化地形纹理&#xff01;这些令人惊叹的纹理将为你的游戏世界带来独特而引人入胜的视觉体…

Ambari集成Apache Kyuubi实践

目前还有很多公司基于HDP来构建自己的大数据平台&#xff0c;随着Apache Kyuubi的持续热度&#xff0c;如何基于原有的HDP产品来集成Apache Kyuubi&#xff0c;很多人都迫切的需求。集成Apache Kyuubi到HDP中&#xff0c;主要涉及Ambari的二次开发。本文详细叙述了集成Apache K…

老师怎么发期末成绩?

期末成绩发放&#xff0c;可是每个学期的重头戏&#xff0c;老师们&#xff0c;你们怎样安全、高效的传达成绩&#xff1f;别急&#xff0c;今天就来聊聊这个问题。 先来个小调查&#xff1a;各位老师们都是怎么发成绩的&#xff1f;是传统的纸质成绩单&#xff0c;还是电子邮件…

IngsollRang伺服拧紧轴控制器维修故障排查

【IngsollRang控制器故障排查】 在开始维修之前&#xff0c;请确保拧紧机已关闭并断开电源。然后&#xff0c;按照以下步骤进行故障排查&#xff1a; 1. 检查电源连接&#xff1a;确保拧紧机的电源线牢固连接&#xff0c;且电源插座正常工作。 2. 检查保险丝&#xff1a;如果电…

SmartEDA赋能学校教育:电子设计学习新篇章,让梦想触手可及!

在数字化时代&#xff0c;电子设计已成为科技创新的重要驱动力。然而&#xff0c;对于许多初学者和在校学生来说&#xff0c;电子设计的学习过程往往充满了挑战和困惑。幸运的是&#xff0c;随着SmartEDA的出现&#xff0c;这一局面正在发生深刻改变。SmartEDA不仅简化了电子设…

期末成绩怎么单独发给家长

想知道如何让成绩查询变得简单又安全吗&#xff1f;跟着我&#xff0c;带你发现一个让家长和老师都省心的神器&#xff01; 传统的成绩发布方式&#xff0c;一张张成绩单&#xff0c;一封封邮件&#xff0c;或是一条条短信&#xff0c;这些方法虽然有效&#xff0c;但效率不高&…

如何利用51建模网,在跨境独立站内实现商品3D模型嵌入展示?

跨境电商卖家如何在自己的独立站上嵌入商品3D模型&#xff1f;利用51建模网的Web3D展示技术和内嵌功能&#xff0c;即可实现商品3D模型嵌入&#xff0c;全方位的720立体交互展示&#xff0c;为消费者带来沉浸式的购物体验&#xff0c;显著提升消费者的参与度和网页访问时长。 具…

随到随学|2024泰迪智能科技暑期在线项目/集训营

在数字化转型的浪潮中&#xff0c;大数据和人工智能等前沿技术已成为推动经济发展和科技进步的关键动力。当前&#xff0c;全球各行各业都在积极推进数字化转型&#xff0c;不仅为经济增长注入新活力&#xff0c;也对人才市场结构产生了深刻影响&#xff0c;尤其是对数字化人才…

【优化过往代码】关于vue自定义事件的运用

【优化过往代码】关于vue自定义事件的运用 需求说明过往代码优化思路优化后代码&#xff08;Vue2&#xff09;遇到问题记录 Vue2官方自定义指令说明文档 Vue3官方自定义指令说明文档 需求说明 进入某些页面需要加载一些外部资源&#xff0c;并在资源加载完后进行一些处理&…