Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --!native
- --!strict
- local CollectionService = game:GetService("CollectionService")
- local GrassPhysics = require(script.Parent.Parent.Physics.GrassPhysics)
- local Camera = workspace.CurrentCamera
- local function updateVisibility(): ()
- local viewDirection = Camera.CFrame.LookVector.Unit
- local function processObject(obj: BasePart): ()
- local partPosition = obj.Position
- local toObject = (partPosition - Camera.CFrame.Position).Unit
- local dotProduct = viewDirection:Dot(toObject)
- if dotProduct > 0 then
- print("Object in view: " .. obj.Name) -- Debugging
- GrassPhysics:enableGrass(obj)
- else
- print("Object out of view: " .. obj.Name) -- Debugging
- GrassPhysics:disableGrass(obj)
- end
- end
- for _, obj in CollectionService:GetTagged("Grass") do
- processObject(obj)
- end
- end
- Camera:GetPropertyChangedSignal("CFrame"):Connect(function()
- updateVisibility()
- end)
- print("p")
Advertisement
Add Comment
Please, Sign In to add comment