Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

СЛОЖНЫЙ ВОПРОС ПО РОБЛОКС СТУДИО

Иван Киселев Ученик (103), закрыт 3 дня назад
Помогите пж, нужно закрепить камеру на одном объекте при прикосновении к другому в роблокс
Лучший ответ
Zinarhack Zinarhack Xyinya Профи (876) 4 дня назад
 --[[   

Тип скрипта должен быть серверным.

Желательно в ServerScriptService

Все, где есть комментарии надо заполнить

]]



local part = {...} -- внимание, здесь должен быть путь до парта, до которого должен докоснуться игрок!!!!!

pcall(function(re = Instance.new("RemoteEvent",game:GetService("ReplicatedStorage")) re.Name = "CameraTouchEvent" end)



part.Touched:Connect(function(hit, part.CFrame)

if hit.Parent:FindFirstChild("Humanoid") then

local playerargument = game:GetService("Players")[hit.Parent.Name]



if playerargument then

re:FireClient(playerargument)

end

end

end)


 --[[ 
Тип скрипта должен быть локальным.
Желательно в StarterCharacterScripts
Все, где есть комментарии надо заполнить
]]

repeat wait() until game:GetService("ReplicatedStorage")["CameraTouchEvent"]

local event = game:GetService("ReplicatedStorage")["CameraTouchEvent"]

event.OnServerEvent:Connect(function(arg1)
local sucess, err = pcall(function()
local camera = game:GetService("Workspace")["CurrentCamera"] or game:GetService("Workspace")["Camera"]
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = arg1

end)

if not sucess and string.match(err,"nil") then print("возврат ошибки | Не найден ивент/камера, ошибка : "..err) end
end)
Есть ошибка - пиши, я пишу саморучно скрипты и я довольно хорошо владею lua
ivan866_zМудрец (19424) 3 дня назад
вроде все ok, только забыл указать
 Camera.Parent = arg1
Camera.CFrame = arg1:GetPivot()
Zinarhack Zinarhack Xyinya Профи (876) ivan866_z, arg1 передается сразу CFrame, если указать Camera.Parent = arg1, то напишет ошибку CFrame
Остальные ответы
Тот, кто был повешен Мудрец (11452) 4 дня назад
Нажми кнопку удалить
Тсьсл ЛклащащУченик (111) 1 день назад
скажи три
Тот, кто был повешен Мудрец (11452) Тсьсл Лклащащ, три богатыря
Passiv_rblx 452 Ученик (208) 4 дня назад
-- Скрипт в объекте-активаторе
local Camera = game.Workspace.Camera -- Замените "Camera" на имя вашей камеры

function Touched(hit)
-- Проверка, что объект, который коснулся, это игрок
if hit.Parent:IsA("Player") then
-- Фиксируем камеру на объекте-активаторе
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CameraSubject = hit.Parent.Character.HumanoidRootPart -- HumanoidRootPart - это основная часть тела игрока
end
end

script.Parent.Touched:Connect(Touched)
Passiv_rblx 452Ученик (208) 4 дня назад
Сам делал скрипт
Иван Киселев Ученик (103) Passiv_rblx 452, камеру крепким на прозрачном блоке сверху, а скрипт пишем для пола???
Иван КиселевУченик (103) 4 дня назад
Спасибо, попробую
Иван КиселевУченик (103) 4 дня назад
Или как
Passiv_rblx 452 Ученик (208) Иван Киселев, как-то так у меня работает
Константин Зарубин Ученик (98) 4 дня назад
удалить нажми и все будет найс бро
Юлия Скрипниченко Мастер (1744) 4 дня назад
Для закрепления камеры на одном объекте при прикосновении к другому в Roblox Studio, вам нужно использовать несколько концепций Roblox API. В этом примере мы будем использовать события касания (`Touched`) и управление камерой для достижения желаемого эффекта.

### Шаги для реализации

1. **Создайте объект, к которому нужно прикрепить камеру**. Это может быть любой объект в игре, например, `Part`.

2. **Добавьте скрипт в объект, который будет управлять камерой**. Этот скрипт будет отвечать за отслеживание касания и изменение позиции камеры.

### Пример скрипта

```lua
-- Положите этот скрипт в объект, который должен прикреплять камеру

-- Убедитесь, что объект имеет Collider (Part или другой тип объекта с коллайдером)
local objectToFollow = script.Parent -- Этот объект будет следовать за камерой
local camera = game.Workspace.CurrentCamera -- Камера в игре

-- Функция, которая будет вызываться при касании
local function onTouch(hit)
-- Проверяем, что касание происходит с игроком
local character = hit.Parent
if character and character:FindFirstChild("Humanoid") then
-- Камера будет следовать за объектом
camera.CameraType = Enum.CameraType.Scriptable
camera.CFrame = objectToFollow.CFrame
end
end

-- Функция для остановки следования камеры
local function stopFollowing()
camera.CameraType = Enum.CameraType.Custom
end

-- Присоединяем обработчик касания
objectToFollow.Touched:Connect(onTouch)

-- Останавливаем следование, когда игрок выходит из объекта
objectToFollow.TouchEnded:Connect(stopFollowing)
```

### Пояснения к коду

1. **`local objectToFollow = script.Parent`**: Ссылаемся на объект, который будет управлять камерой. Убедитесь, что этот скрипт находится внутри объекта, который вы хотите отслеживать.

2. **`local camera = game.Workspace.CurrentCamera`**: Получаем ссылку на текущую камеру в игре.

3. **Функция `onTouch`**: Эта функция вызывается, когда объект касается другого объекта. Мы проверяем, что касание произошло с игроком (через `Humanoid`), и затем изменяем тип камеры на `Scriptable`, чтобы управлять её положением вручную.

4. **Функция `stopFollowing`**: Эта функция возвращает камеру в режим `Custom`, который позволяет игроку управлять камерой самостоятельно.

5. **`objectToFollow.Touched:Connect(onTouch)`**: Подключаем функцию `onTouch` к событию касания объекта.

6. **`objectToFollow.TouchEnded:Connect(stopFollowing)`**: Подключаем функцию `stopFollowing` к событию окончания касания.

### Учтите

- Этот код будет работать только в клиентском скрипте (LocalScript), так как изменения камеры должны происходить на стороне клиента.
- Убедитесь, что объект, который вы используете для отслеживания, имеет Collider и правильно настроен для взаимодействия с другими объектами.
Похожие вопросы