Roblox - Utilizando ClickDetector

ClickDetector

Detecta funções do mouse em uma parte.

Como utilizar

Primeiro precisamos inserir o objeto “ClickDetector” onde queremos detectar os eventos.

image

O próximo passo é inserir um script (pode ser onde você quiser, mas terá que encontrar o ClickDetector nele. Eu coloquei dentro da Part).

image

Ao passar o mouse por cima da Part, o cursor muda por causa do ClickDetector que inserimos.
Passando o mouse

Agora o Script:

local Part = script.Parent  --> Encontrando a Part
local ClickDetector = Part.ClickDetector  --> Encontrando o ClickDetector

--> Detectar quando clicarem na Part
ClickDetector.MouseClick:connect(function()
   Part.BrickColor = BrickColor.Random()
end)

Sempre que clicarmos na Part a cor dela vai mudar
Mudando a cor


Podemos também adicionar um parâmetro para pegar quem clicou:

local Part = script.Parent  --> Encontrando a Part
local ClickDetector = Part.ClickDetector  --> Encontrando o ClickDetector

--> Detectar quando clicarem na Part
ClickDetector.MouseClick:connect(function(QuemClicou) --> O primeiro parâmetro recebe quem executou a função, no caso, quem clicou.
   Part.BrickColor = BrickColor.Random()
   print('Olhem! ' .. QuemClicou.Name .. ' acabou de mudar a cor da Part!')
end)

image

Dica: “QuemClicou” que pegamos pelo parâmetro é um Player, não um Character.

local Part = script.Parent  --> Encontrando a Part
local ClickDetector = Part.ClickDetector  --> Encontrando o ClickDetector

--> Detectar quando clicarem na Part
ClickDetector.MouseClick:connect(function(QuemClicou) --> O primeiro parâmetro recebe quem executou a função, no caso, quem clicou.
   Part.BrickColor = BrickColor.Random()
   print(QuemClicou.Parent)
end)

image


Existem também outros eventos:

local Part = script.Parent  --> Encontrando a Part
local ClickDetector = Part.ClickDetector  --> Encontrando o ClickDetector

ClickDetector.MouseClick:connect(function()
	print('Clique com botão esquerdo.')
end)

ClickDetector.RightMouseClick:connect(function()
	print('Clique com botão direito.')
end)

ClickDetector.MouseHoverEnter:connect(function()
	print('Mouse entrou.')
end)

ClickDetector.MouseHoverLeave:connect(function()
	print('Mouse saiu.')
end)

Eventos mouse



Vamos praticar!

Vamos criar uma porta que “abre” ao clicar em um botão
image

Script:

local Botao = script.Parent  --> Encontrando o botão
local ClickDetecor = Botao.ClickDetector  --> Encontrando o ClickDetector
local Porta = script.Parent.Parent.Porta  --> Encontrando a porta
local PortaEstaAberta = false  --> Debounce


ClickDetecor.MouseClick:connect(function()
	if not PortaEstaAberta then
		--> Mudando o debounce
		PortaEstaAberta = true
		
		--> "Abrindo" a porta
		Porta.Transparency = 0.3  --> Deixando ela mais transparente
		Porta.CanCollide = false  --> Desativando a colisão (podemos passar por ela)
		
		--> Mudando a cor do botão
		Botao.BrickColor = BrickColor.Red()
		
	else
		--> Mudando o debounce
		PortaEstaAberta = false
		
		--> "Fechando a porta"
		Porta.Transparency = 0  --> Deixando a porta opaca
		Porta.CanCollide = true  --> Ativando a colisão (não podemos mais passar por ela)
		
		--> Mudando a cor do botão
		Botao.BrickColor = BrickColor.Green()

	end
end)

Resultado:

Porta

Obrigado por ler!

Muito obrigado! Espero ter te ajudado de alguma forma. Qualquer dúvida, é só perguntar!

Desculpe pela formatação do código, não consegui deixar "colorido", ainda estou aprendendo a utilizar Markdown. :)

2 Curtidas

Tutorial bem útil, creio q poderia haver uma parte dois, pois ficou alguns conteúdos no ar.

Tá top :+1:

1 Curtida

Obrigado! Acho que vou fazer uma parte dois com GUI’s ou algo do tipo.

vlw ae cara,como q coloca gif em tutorial ;-;

1 Curtida

Eu usei um programa que salva o gif nos arquivos do computador. Se quiser, é esse aqui: http://gifrecorder.com/download.htm#.X4m_O0vPzIU

(eu acho que ele é meio antigo, qualquer hora vou procurar outro)

1 Curtida

blz vlw,deu certo aq kkk

1 Curtida