Top.Mail.Ru
Ответы

Скрипт роблокс студио с исчезновением объекта при повороте камеры

подскажите, как сделать что бы объект исчезал при повороте камеры? например нпс стоит, но когда игрок отворачивает камеру, а после возращает ее, нпс исчезает

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Ученик
4мес

1. Создайте NPC: Убедитесь, что у вас есть NPC в игре.

2. Добавьте скрипт: Вставьте LocalScript в NPC или в StarterPlayerScripts.

3. Используйте событие Camera: Отслеживайте изменения в направлении взгляда камеры.

▎Пример кода:

Lua


local player = game.Players.LocalPlayer
local camera = workspace.CurrentCamera
local npc = game.Workspace.NPC -- Замените на путь к вашему NPC

local function isCameraLookingAtNPC()
local npcPosition = npc.Position
local cameraPosition = camera.CFrame.Position
local directionToNPC = (npcPosition - cameraPosition).unit

-- Получаем направление взгляда камеры
local cameraDirection = camera.CFrame.LookVector

-- Проверяем угол между направлением камеры и направлением к NPC
local angle = math.acos(cameraDirection:Dot(directionToNPC))

-- Угол в радианах, если больше 90 градусов, значит камера отвернута от NPC
return angle < math.pi / 2
end

while true do
wait(0.1) -- Проверяем каждые 0.1 секунды

if isCameraLookingAtNPC() then
npc.Transparency = 0 -- NPC видим
npc.CanCollide = true -- NPC может столкнуться
else
npc.Transparency = 1 -- NPC невидим
npc.CanCollide = false -- NPC не может столкнуться
end
end


▎Объяснение кода:

• isCameraLookingAtNPC: Эта функция проверяет, смотрит ли камера на NPC. Она вычисляет угол между направлением взгляда камеры и направлением на NPC.

• Цикл while: Этот цикл выполняется бесконечно и проверяет, смотрит ли камера на NPC каждые 0.1 секунды.

• Установка прозрачности и коллизии: Если камера смотрит на NPC, он становится видимым и может столкнуться с другими объектами. Если камера отвернута, NPC становится невидимым и не может столкнуться.

▎Замечания:

• Убедитесь, что у вашего NPC установлены свойства CanCollide и Transparency по умолчанию.

• Вы можете настроить частоту проверки (интервал wait) в зависимости от ваших требований.

• Если вы хотите улучшить производительность, рассмотрите возможность использования событий для отслеживания изменений в положении камеры вместо постоянного цикла.

Аватар пользователя
Просветленный
4мес

чувак, над таким скриптом можно работать день-два, и больше
никто тебе за просто так этим не будет заниматься
к тому же задача описана крайне вальяжно

в целом, ИИ выше дал неплохую подсказку, не считая того что while true - это днище
такой цикл называется busy polling и это очень "дорогое" удовольствие