【问题标题】:Make NPC Look Like a Player in ROBLOX让 NPC 看起来像 ROBLOX 中的玩家
【发布时间】:2018-12-16 14:23:00
【问题描述】:

我正在尝试让 NPC 看起来像标题屏幕的玩家。

我不需要关于如何制作 NPC 的教程;我知道如何让 NPC 看起来像某人。相反,我需要知道如何在脚本中克隆玩家的确切外观。我该怎么做?

【问题讨论】:

    标签: lua scripting roblox


    【解决方案1】:

    首先,给定玩家的角色模型可以在Player.Character 属性中找到。 .Character 属性是Model,它与游戏中的大多数其他类型的对象一样,具有:Clone() 函数。您可以使用此功能制作玩家角色模型的完整副本。例如:

    player = path.to.player.here
    
    copy = player.Character:Clone()
    copy.Parent = game.Workspace --put the clone into the physical environment
    

    但是,如果您将其用于标题屏幕,就像您所说的那样:当玩家加入游戏时,他们的角色不会立即加载;相反,它需要几秒钟。如果您尝试玩游戏,然后注意实际放置到您的角色中需要多长时间,您可能会亲眼看到这一点。因此,如果您尝试在有人加入您的游戏时使用 .Character您的代码将会中断。为了解决这个问题,您可以使用 ROBLOX 的一个特殊功能,称为 Events。

    ROBLOX 具有称为Events 的特殊对象。 Events 有一个特殊的 :connect() 函数,它允许您将函数连接到这些事件。当您将函数连接到Event 时,该函数将在Event 发生时执行。

    在你的情况下,你需要 两个 Events:

    1. Player 加入游戏时使用
    2. 当他们的物理 .Character model 实际加载时

    首先,让我们谈谈Player 何时加入游戏。首先,我们需要获取Players 对象——一个跟踪所有玩家信息的对象。我们将使用game 的一个特殊函数,称为:GetService()

    players = game:GetService("Players")
    

    现在,我们将在Players 中使用一个特殊的Event,称为.PlayerAdded

    players = game:GetService("Players")
    
    players.PlayerAdded:connect(function(player)
    
    end)
    

    请注意,实际添加的Player 将作为参数传递给参数player。现在,我们将使用Players 中的一个特殊的Event,称为CharacterAdded

    players = game:GetService("Players")
    
    players.PlayerAdded:connect(function(player)
        player.CharacterAdded:connect(function(character)
    
        end
    end)
    

    注意PlayerCharacter 将作为参数方便地传递给参数character,因此我们甚至不需要使用Player.Character。现在,我们可以将之前的克隆代码放入到这段代码中:

    players = game:GetService("Players")
    
    players.PlayerAdded:connect(function(player)
        player.CharacterAdded:connect(function(character)
            local copy = character:Clone()
            copy.Parent = game.Workspace --put the clone into the physical environment
    
            --your code here
        end
    end)
    

    就是这样!现在您可以将处理克隆的所有代码替换为--your code here

    最后一点是,这需要在常规 Script 中完成,不是 LocalScriptScripts 由 ROBLOX 服务器处理,而LocalScripts 由玩家电脑自己处理。由于服务器会处理添加到游戏中的玩家,因此您必须使用 Script

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      我会假设你想让一个 NPC 看起来像一个玩家?这可能需要一些工作,但您必须在game.Workspace 中找到您希望 NPC 看起来像的播放器,然后您可以克隆播放器并将 npc 的部分插入其中,或者您可以只插入将玩家克隆到 npc 中。

      据我所知,没有在脚本中执行此操作的方法。

      【讨论】:

        猜你喜欢
        • 2019-02-17
        • 2021-06-24
        • 1970-01-01
        • 1970-01-01
        • 2021-01-13
        • 2021-07-27
        • 2021-07-24
        • 2021-10-17
        • 2022-06-21
        相关资源
        最近更新 更多