📜  如何在 roblox 中进行 NPC 聊天 - Lua (1)

📅  最后修改于: 2023-12-03 15:24:22.536000             🧑  作者: Mango

如何在 Roblox 中进行 NPC 聊天 - Lua

在 Roblox 中,我们可以通过 Lua 编程来实现与 NPC(Non-Player Character)的聊天。这是一个十分有趣的应用场景,需要我们用到 Roblox API 中与聊天相关的函数。

准备工作

首先,我们需要创建一个 NPC,可以使用 Roblox Studio 中的模型来代表 NPC。然后,我们需要给 NPC 添加对话内容,可以通过在模型中添加 Part 并在 Part 的属性中添加对话文本来实现。最后,我们需要为 NPC 添加一个触发器,可以使用 Roblox Studio 中的 Trigger Part。当玩家进入触发器范围时,NPC 就会开始与玩家进行聊天。

实现

在准备工作完成后,我们开始实现 NPC 聊天的功能。

local npc = -- 获取 NPC 对象

local function startChat(player)
    local chatGui = Instance.new("ScreenGui")
    chatGui.Parent = player.PlayerGui
    chatGui.Enabled = true

    local chatFrame = Instance.new("Frame", chatGui)
    chatFrame.Size = UDim2.new(0.3, 0, 0.3, 0)
    chatFrame.Position = UDim2.new(0.5, 0, 0.5, 0)
    chatFrame.BackgroundColor3 = Color3.fromRGB(50, 50, 50)
    chatFrame.BackgroundTransparency = 0.5

    local chatText = Instance.new("TextLabel", chatFrame)
    chatText.Size = UDim2.new(0.9, 0, 0.7, 0)
    chatText.Position = UDim2.new(0.05, 0, 0.1, 0)
    chatText.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    chatText.BackgroundTransparency = 0.8
    chatText.TextColor3 = Color3.fromRGB(255, 255, 255)
    chatText.TextWrapped = true
    chatText.Font = Enum.Font.SourceSans
    chatText.TextSize = 16
    chatText.Text = "Hello, I'm NPC."

    local chatInput = Instance.new("TextBox", chatFrame)
    chatInput.Size = UDim2.new(0.9, 0, 0.2, 0)
    chatInput.Position = UDim2.new(0.05, 0, 0.8, 0)
    chatInput.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
    chatInput.BackgroundTransparency = 0.8
    chatInput.TextColor3 = Color3.fromRGB(255, 255, 255)
    chatInput.Font = Enum.Font.SourceSans
    chatInput.TextSize = 16
    chatInput.PlaceholderText = "Type here"
    chatInput.FocusLost:Connect(function()
        chatText.Text = chatInput.Text
        chatInput.Text = ""
    end)
end

npc.Touched:Connect(function(hit)
    if hit.Parent:FindFirstChild("Humanoid") then
        startChat(hit.Parent)
    end
end)

上述代码中,我们定义了一个 startChat 函数,创建了一个居中的 UI 界面,以供 NPC 与玩家进行聊天。当玩家进入 NPC 的 Trigger Part 范围时,会触发 npc.Touched 事件,此时会调用 startChat 函数创建 UI 界面。

结语

通过本文的介绍,我们可以看到,使用 Lua 编程在 Roblox 中实现 NPC 聊天是非常简单的。希望本文能够为 Roblox 开发者提供一些帮助。