1. Создайте новую группу коллизий:
- В меню "Model" выберите "Collision Groups"
- Нажмите "Create New Group" и назовите ее, например, "PlayerPassThrough"
2. Настройте объект, через который должен проходить только игрок:
- Выберите объект в рабочей области
- В свойствах объекта найдите "CollisionGroup"
- Установите значение "CollisionGroup" на "PlayerPassThrough"
3. Настройте персонажа игрока:
- В Explorer найдите "StarterPlayer" -> "StarterCharacterScripts"
- Добавьте новый скрипт (LocalScript)
- Вставьте следующий код в скрипт:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local function setCollisionGroup()
for _, part in pairs(character:GetDescendants()) do
if part:IsA("BasePart") then
part.CollisionGroup = "PlayerPassThrough"
end
end
end
setCollisionGroup()
player.CharacterAdded:Connect(setCollisionGroup)
4. Настройте NPC:
- Убедитесь, что все части NPC имеют CollisionGroup установленную на "Default"
5. Настройте группы коллизий:
- Снова откройте "Collision Groups" в меню "Model"
- Найдите группу "PlayerPassThrough"
- В столбце "PlayerPassThrough" установите значение "No Collision" для строки "PlayerPassThrough"
- Оставьте значение "Will Collide" для строки "Default"
Теперь игрок сможет проходить через объекты с группой коллизий "PlayerPassThrough", а NPC будут сталкиваться с ними как обычно.