2016-11-07 5 views
0

나는 천천히 다음 표시 ImageLabel을 만드는 ModuleScript기능을 실행하면 벽돌을 터치하면, 그것은 당신의 성격을 동결 것이다 있도록 만들려고 해요 캐릭터가 건물 안팎으로 순간 이동하면 사라집니다. 지금까지 캐릭터를 고정시키고 함수를 호출하도록 만들었지 만 이미지를 표시하고 사라지게하는 코드는 작동하지 않습니다.ROBLOX 루아 - 이미지 투명도 기능

_G.BeginFade = {}

_G.BeginFade.GlobalFunction = function()

`local Image = game.StarterGui.Fade.FadeImage` 
Image.Visible = true 
repeat 
    Image.ImageTransparency = Image.ImageTransparency - 0.1 
    wait(0.2) 
until 
    Image.ImageTransparency == 0 
wait(2) 
repeat 
    Image.ImageTransparency = Image.ImageTransparency + 0.1 
until 
    Image.ImageTransparency == 1 

end

나는() 함수를 호출, 내가 다른 스크립트에서 호출 할 _G.BeginFade.GlobalFunction를 사용 :이 코드입니다. 함수가 포함 된 ModuleScript는 StarterGui에 있습니다. 그것은이 오류를 반환 : 당신이 조사 할 수 있습니다

Workspace.Home Teleport.tele2.Teleport pad Script:47: attempt to index field 'BeginFade' (a nil value)

답변

0
local player = game.Players.LocalPlayer 
local Image = player.StarterGui.Fade.FadeImage 
local i = 0 --have i as a stopper for the repeat function, it tends to go over it. 
script.Parent.Door1.Touched:connect(function(hit) 
if hit.Humanoid ~= nil then 
Image.Visible = true 
repeat 
Image.Transparency = Image.Transparency - 0.1 
i = i + 1 
wait(0.1) 
until i == 10 
end 
end) 

script.Parent.Door2.Touched:connect(function(hit) 
if hit.Humanoid ~= nil then 
Image.Visible = true 
repeat 
Image.Transparency = Image.Transparency - 0.1 
i = i - 1 
wait(0.1) 
until i == 0 
end 
end) 
+0

감사합니다.하지만 다른 스크립트에서 호출 할 수 있도록 함수가 필요합니다. 만약 내가 그것의 일부를 가져 와서 그것을 함수에 넣으면이 방법이 효과가 있습니까? – Dragonshield

0

뭔가를 당신이 별도의 스레드에서 그것을 선언하는 경우 가능성이 있기 때문에 세계는, 함수의 시간에 선언 된 경우입니다 여전히 그것의 nil.

사실, 주어진 오류 코드는 귀하가 제공 한 코드 스 니펫과 관련이 없습니다.

전체 모듈과 선언을 주면 여기에 직접 패치를 제공 할 수 있습니다 ...하지만 그때까지는 선언이 스레드간에 동기화되는지 확인하십시오.