Hi everyone.
I’ve been messing around with some BillboardGui’s today and I ran across a really strange behaviour. You can see in the video below that when I remove the BillboardGui even manually in studio, it’s still being rendered.
There are no duplicates of the BillboardGui anywhere in the explorer (I’ve checked rigorously with more methods than shown in the video).
Here’s the code that is used:
-- Controls
local ThumbnailType = Enum.ThumbnailType.AvatarBust
local ThumbnailSize = Enum.ThumbnailSize.Size420x420
-- Services
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- References
local Player = Players.LocalPlayer
local CurrentCoroutine = nil
-- Cycle through colours
function ColourChanger(Frame)
local Counter = 0
while wait() do
local Sine = 1 - math.sin(math.rad(Counter))
Frame.Button.ImageColor3 = Color3.new(Sine, Sine, Sine)
Counter = Counter + 3
end
end
-- Create UI each time the player spawns in.
function EquipBillboardGui(Character, Adornee)
local CharacterThumbnail = Players:GetUserThumbnailAsync(Player.UserId, ThumbnailType, ThumbnailSize)
local UI = Player.PlayerGui:WaitForChild("CharacterSelector")
local Frame = UI.Frame
Frame.Character.Image = CharacterThumbnail
UI.Adornee = Adornee
--if CurrentCoroutine then
-- coroutine.yield(CurrentCoroutine)
--end
--CurrentCoroutine = coroutine.create(ColourChanger)
--coroutine.resume(CurrentCoroutine, Frame)
Frame.Button.MouseButton1Click:Connect(function()
ReplicatedStorage.Remotes.TransformCharacter:FireServer(Character.Humanoid)
end)
end
-- Listeners
Player.CharacterAdded:Connect(function(Character)
EquipBillboardGui(Character, Character:WaitForChild("Head"))
Character.ChildAdded:Connect(function(Child)
if Child.Name == "Head" then
EquipBillboardGui(Character, Child)
end
end)
end)
You can see in the video above the behaviour.
Is there any special behaviour or property that would cause this? Or is this a Studio bug?
Thanks,
-Tom