不确定如何使用Vector3

我尝试每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)
点赞
用户2860267
用户2860267

Vector3 保存了三维空间中某一点的坐标。在构造函数中,您只提供了三个信息中的一个。要构造一个 Vector3,您需要同时提供 Y 和 Z 轴,像这样:

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

但是您并不需要显式创建一个 Vector3 才能让您的代码运行。您只需将生成位置的位置分配给您新创建的水果,就可以轻松解决问题。这样,您可以添加更多生成位置,而无需每次更新脚本。

-- 从工作区中获取一些东西
local roka = workspace["Rokakaka Fruit"]
local itemSpawns = workspace.ItemSpawnLocals

-- 选择一个随机生成位置
local spawnLocations = itemSpawns:GetChildren()
local spawnNumber = math.random(1, #spawnLocations)
local spawnPosition = spawnLocations[spawnNumber].Position

-- 在生成位置之一生成并移动一个新的水果
roka2 = roka:Clone()
roka2.Parent = workspace
local roka2handle = roka2.Handle
roka2handle.Position = spawnPosition

-- 调试信息
print("spawning fruit at : ", spawnPosition)

另外,如果 roka2 是一个 Model,您可能需要考虑使用 roka2:SetPrimaryPartCFrame( CFrame.new(spawnPosition)) 来移动它。

2020-12-29 06:36:50