Roblox CFrame lookVector не является движущейся частью? - PullRequest
0 голосов
/ 09 октября 2018

Я недавно много работал с механикой CFrame во время написания сценариев, и я застрял на этом.

Даже после использования .lookVector или даже Vector3, позиция модели Jetpackостается равным положению туловища вместо 5 (* -5) за туловищем.

Вот код, который у меня есть:

local player = script.Parent
local jetpack = game.ReplicatedStorage.Jetpack
local jetpackClone = jetpack:Clone()
jetpackClone.PrimaryPart = jetpackClone.Core
jetpackClone.Parent = player
jetpackClone:moveTo(player.Torso.Position + player.Torso.CFrame.lookVector * -5)

local weld = Instance.new("Motor6D")
weld.Parent = jetpackClone.Core
weld.Part0 = jetpackClone.Core
weld.Part1 = player.Torso

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Способ исправить это довольно прост.

Как сказал Ахмад, moveTo используется для моделей, не имеющих первичной части.Но дело не только в этом.

Одна вещь, которую Ахмад забыл, это то, что lookVector - это не CFrame, а Vector3.

В этом фрагменте вы сделали

moveTo(player.Torso.Position + player.Torso.CFrame.lookVector * -5)

Это было бы хорошо, если бы вы не использовали числовое значение с Vector3.Чтобы исправить это, вместо этого, ваш код должен быть

local player = script.Parent
local jetpack = game.ReplicatedStorage.Jetpack;
local jetpackClone = jetpack:Clone();
jetpackClone.PrimaryPart = jetpackClone.Core;
jetpackClone.Parent = player; -- Is the 'Player' a Player, or a character??

local weld = Instance.new("Weld", player.Torso) -- We use 'Weld' here, instead of Motor6D
weld.Part1 = jetpackClone.Core;
weld.Part0 = player.Torso;
weld.C0 = CFrame.new(0, 0, -5); -- We use the C0 property of Weld's

Это должно сделать это для приварки реактивного ранца к вашему туловищу.Хотя я бы проверил, верен ли в нем CFrame, я не уверен, так ли это или нет, но если реактивный ранец появится перед туловищем, тогда замените weld.C0 = CFrame.new(0, 0, -5) на weld.C0 = CFrame.new(0, 0, 5).

Надеюсь, мой ответ поможет!

0 голосов
/ 13 октября 2018

moveTo используется для моделей, которые не имеют первичной части.Который может быть неточным.Вместо этого используйте :SetPrimaryPartCFrame(), также вы добавляете Position + CFrame (это может вызвать ошибку, вы проверяли вывод?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...