【问题标题】:Not sure how to use vector3不知道如何使用vector3
【发布时间】:2021-04-05 17:41:12
【问题描述】:

我试图让一个项目每 60 秒在两个位置之一生成,但是当我尝试使用 vector3 时,它并没有在“spawnplace1”或“spawnplace2”的位置生成,而是在roka 被复制并没有移动。我也不认为我可以拿着复制的roka。这是代码!

local roka = workspace["Rokakaka Fruit"]
local itemspawns = workspace.ItemSpawnLocals
local itemspawn1 = itemspawns["Item Spawn 1"]
local itemspawn2 = itemspawns["Item Spawn 2"]

local place1 = itemspawn1.Position
local place2 = itemspawn2.Position

wait(60)
local spawnplace1 = math.random(1,2)
local spawnplace2 = math.random(1,2)

if spawnplace1 == 1 then
    roka2 = roka:Clone()
    roka2.Parent = workspace
    
    local roka2handle = roka2.Handle
    
    roka2handle.Position = Vector3.new(itemspawn1)

elseif spawnplace1 == 2 then
    roka2 = roka:Clone()
    roka2.Parent = workspace

    local roka2handle = roka2.Handle

    roka2handle.Position = Vector3.new(itemspawn2)
end

print(spawnplace1)
print(spawnplace2)

【问题讨论】:

标签: lua roblox


【解决方案1】:

Vector3 保存 3D 空间中一个点的坐标。您在构造函数中只提供了 3 条信息中的 1 条。要构造 Vector3,您还需要提供 Y 轴和 Z 轴,如下所示:

roka2handle.Position = Vector3.new(1, 2, 3)

但您无需显式创建 Vector3 即可使您的代码正常工作。您可以将生成位置的位置分配给新创建的水果,这应该可以解决问题。这样,您可以添加更多生成位置,而无需每次都更新脚本。

-- grab some things from the workspace
local roka = workspace["Rokakaka Fruit"]
local itemSpawns = workspace.ItemSpawnLocals

-- choose a random spawn location
local spawnLocations = itemSpawns:GetChildren()
local spawnNumber = math.random(1, #spawnLocations)
local spawnPosition = spawnLocations[spawnNumber].Position

-- spawn and move a new fruit to one of the spawn locations
roka2 = roka:Clone()
roka2.Parent = workspace
local roka2handle = roka2.Handle
roka2handle.Position = spawnPosition

-- debug
print("spawning fruit at : ", spawnPosition)

附带说明,如果roka2 是一个模型,您可能需要考虑使用roka2:SetPrimaryPartCFrame( CFrame.new(spawnPosition)) 来移动它。

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 2010-12-05
    • 2012-08-23
    相关资源
    最近更新 更多