In 스크립트 소개에서 시간이 지남에 따라 경험에서 변경하는 방법을 배웠습니다.사용자 행동에 따라 변경을 원하는 경우 어떻게 합니까? 이 자습서에서는 사용자가 그것을 밟을 때 사망하는 치명적인 용암 바닥을 만드는 방법을 배웁니다.
설정
치명적인 용암을 넣을 세계의 장소가 필요합니다.스크립트 소개 과정을 따랐다면, 용암 층이 사라지는 공간에 딱 맞게 들어갈 것입니다.If you followed the 스크립트 소개 과정 course, the lava floor would fit nicely in the gap covered by the disappearing platforms.
삽입 Part 및 세계에서 그것을 이동하십시오. 이름을 LavaFloor 로 지정하십시오.
둘러싼 공간의 바닥을 덮도록 크기를 조정합니다.
Material``Neon 설정하고 Color 주황색 셰이드로 설정하여 바닥을 용암처럼 보이게 합니다.
삽입 스크립트 부분에 LavaFloor 파트에 삽입하고 이름을 Kill
기본 코드를 제거하고 용암에 대한 변수를 만듭니다.
local lava = script.Parent
이벤트에 연결
사용자가 용암을 만질 때를 감지하기 위해 이벤트 를 사용하세요.모든 부품에는 누군가 그것을 만질 때 발생하는 Touched 이벤트가 있습니다.이 이벤트에 연결 하여 발생할 때 함수를 실행할 수 있습니다.
새로운 함수 kill 를 선언합니다.
점을 사용하여 용암 개체에서 Touched 이벤트에 액세스하십시오, 속성처럼: lava.Touched .
부품이 만질 때 호출할 함수로 Connect 을 전달하여 Touched 이벤트에서 kill() 함수를 호출하십시오.
local lava = script.Parentlocal function kill()endlava.Touched:Connect(kill)
kill 함수에 작성하는 모든 코드는 이제 누군가 용암에 닿을 때마다 실행됩니다. 컬럼 이 Connect 함수에 사용되며, 점이 아님 에 대해 걱정하지 마세요, 차이점만 기억하세요.
터치하는 부분 가져오기
사용자를 죽이려면 해당 사용자와 연결된 개체가 필요합니다.부품의 Touched 이벤트는 부품에 닿은 "다른 부품"을 제공할 수 있지만, 함수의 매개변수 로 요청해야만 합니다.
매개 변수는 함수가 호출될 때 받을 것으로 예상되는 정의입니다.매개 변수는 다른 변수와 마찬가지로 함수에서 사용할 수 있습니다.함수가 호출될 때 괄호에 포함하여 매개 변수에 정보를 전달할 수 있습니다.매개 변수는 함수의 첫 줄에 있는 괄호에 정의됩니다. Parameters are defined in the parentheses on the first line of a function.함수 에 대해 otherPart 호출되는 매개변수를 생성합니다.Create a parameter called for the kill function.
local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)
kill 함수가 호출될 때, otherPart 매개변수는 용암 바닥에 닿은 부분을 나타내고, 함수에서 작성할 코드는 사용할 수 있습니다.
캐릭터와 휴머노이드
사용자가 용암을 만질 때 Roblox는 사용자가 만진 특정 신체 부위를 감지할 수 있습니다(예: 왼쪽 다리 또는 오른쪽 발).이 부분은 사용자의 캐릭터 모델에 있으며, 경험에서 사용자의 아바타를 구성하는 모든 개체를 포함합니다. 여기에는 다음이 포함됩니다:
- 머리, 사지 및 몸통과 같은 사용자의 개별 신체 부분.
- 사용자가 착용하는 모든 의류 및 액세서리.
- Humanoid , 사용자와 관련된 많은 속성을 포함하는 특수 개체, 사용자의 건강을 포함합니다.
- 사용자의 이동을 제어하는 휴머노이드 루트 파트.
이전에 언급했듯이, 용암에 닿는 신체 부위는 캐릭터 모델의 일부이므로 otherPart.Parent로 해당 캐릭터에 대한 참조를 얻을 수 있습니다.용암 바닥에 닿은 부품의 부모를 저장하기 위한 변수를 만듭니다.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)
캐릭터 모델에서 사용자를 처치하려면 휴머노이드 개체를 가져와야 합니다.FindFirstChild() 함수로 이것을 수행할 수 있습니다—그저 찾고 있는 것의 이름을 전달하면 그 개체에서 찾은 첫 번째 일치하는 자식을 제공합니다.호출 변수에서 을 자식으로 사용하여 검색하고 새로운 변수 에 결과를 저장합니다.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)
인간형 확인
Humanoid가 if 문을 사용하여 찾았는지 쉽게 확인할 수 있습니다.if 문의 코드는 첫 번째 줄에 정의된 조건이 참이면 실행되지만, 그렇지 않으면 실행되지 않습니다. The code in an if statement will only run if the condition defined in the first line is true.
미래의 과정에서 발견할 수 있는 더 복잡한 조건을 구축하기 위해 사용할 수 있는 다양한 연산자가 있습니다 - 지금은 단지 humanoid를 거기에 넣으십시오.조건으로 humanoid 을 사용하는 if 문을 생성합니다.
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)
캐릭터 체력 설정
이제 Humanoid가 확인되었으므로 해당 속성을 변경할 수 있습니다.속성 Health 을 0 으로 설정하면 연결된 캐릭터가 사망합니다.if 문의 본문에서 humanoid의 Health 속성을 0으로 설정합니다.
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)
그것으로 용암 바닥이 완성되었습니다! 경험을 테스트하고 치명적인 용암이 문의사용자를 성공적으로 처치한다는 것을 발견해야 합니다.오비에서 용암을 추가 도전으로 사용하거나 세계의 경계로 사용해 보세요.
최종 코드
local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)