遊戲內聲音

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

遊戲中的音頻可以強化玩家的體驗。這個教學將探討兩種遊戲內音效: 位置回饋 音效。

為了第一個範例,你會為瀑布創建一個位置音效。 在第二個範例中,一個指令碼將被使用來播放玩家觸摸收藏品時播放的 Jingle。

位置音效

聲音 對象與零件或附件相關時,它會變成位置。音頻會從其位置發出,隨著玩家靠近,就會增加音量,這是在這個瀑布的情況下的情況。

製作聲音

  1. 在任何想要的位置創建新 聲音 對象,名為 WaterfallSound

  2. 在屬性中,找到 SoundId 並將其變更為此水fall 環境:rbxassetid://6564308795

  3. 開始遊戲時,切換 播放 和 循環 以成為 開啟。

  4. 測試遊戲,確認你聽到瀑布的環境聲。

調整音效距離

測試時注意,音頻立即播放,即使玩家距離物件標很遠。 使用滾動關閉屬性,您可以修改玩家聽到聲音的距離,以創建漸漸消失的效果。

  1. RollOffMaxDistance 變更為 30 。此屬性以英哩計量。

  2. 要獲得更平滑的漸漸消失,請將 RollOffMode 變更為 InverseTapered 。這樣會使聲音的接近感覺更少。

  3. 執行項目。注意音只會在對物件附近聽到。

精細調整滾動關閉

根據您的需求,您可能會想調整不同屬性以獲得特殊效果或增強現實。請參閱以下屬性:

  • RollOffMinDistance - 最小距離 (以 stud 計) 一個音效的音量會減少。
  • SoundGroup - 用於調整和平衡音效群之間的音量,例如背景音樂和遊戲內效果。

意見聲音

您可以使用指令使用指令使用音效播放。 您可以將音效鏈接到事件,例如玩家觸摸零件或與菜單互動。 這裡,您將創建一個指令使用音效播放的指令。

設置收藏品

這個教學的剩下部分使用預製模型。這個模型包括零件和指令碼,以便玩家能夠收集寶石。

  1. 在瀏覽器中,開啟 收集可能寶石模型 頁面,然後按一下 取得 按鈕。
  • 在 Studio 中,前往檢視標籤,然後按一下工具箱。
  • 在工具箱窗口中,單擊 物品欄 按鈕。然後確認是否在 我的模型 下拉欄表中。
  • 選擇 可收集寶石 模型,將其添加到遊戲中。
  1. SoundService 中,創建一個名為 FeedbackSound 的新 Sound

  2. 在 FeedbackSound 中,將 SoundId 設置為 rbxassetid://4110925712 - 模型頁面從簡單的鈴聲下載的音鈴ID。

設置指令碼

  1. StarterPlayer > StarterPlayerScripts 中,創建名為 CollectableSounds 的新本地指令碼。

  2. 下面的代碼將會在玩家碰到可收集的時候執行 partTouched 函數。複製代碼到您的脚指令碼。


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    if humanoid and objectPart.CanCollide == true then
    end
    end
    -- 將每個物件零件綁定到觸摸功能,以便在所有零件上運行
    for objectIndex = 1, #objectsArray do
    local objectPart = objectsArray[objectIndex]
    objectPart.Touched:Connect(function(otherPart)
    partTouched(otherPart, objectPart)
    end)
    end

播放聲音

  1. SoundService 建立變數,然後再建立一個變數來儲存 回饋音效


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local SoundService = game:GetService("SoundService")
    local feedbackSound = SoundService:FindFirstChild("FeedbackSound")
    local function partTouched(otherPart, objectPart)
  2. 要播放鐘,請找到 function partTouched 。在 if 句中,调用 feedbackSound:Play() 播放音效。


    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    -- 播放聲音,一旦完成,就毀滅對物件
    if humanoid and objectPart.CanCollide == true then
    feedbackSound:Play()
    end
    end
  3. 測試遊戲,確認玩家觸摸到可收集物品時,它不僅消失,而且也會發出聲音。