데칼 개체는 BasePart의 얼굴에 이미지를 적용하는 개체입니다.
데칼은 어떻게 작동합니까?
데칼은 클래스 부모인 BasePart 에 이미 적용된 이미지를 적용합니다. 이 이미지는 데칼이 적용된 표면에 따라 크기가 변경됩니다. 데칼의 크기는 클래스 부모의 FaceInstance.Face 를 변경하여 변경할
Decal이 적용하는 이미지는 그 이미지의 Decal.Texture 속성에 따라 결정됩니다. 이미지는 Roblox에 업로드할 수 있지만, 커뮤니티 가이드라인을 준수하는 경우에만 업로드할 수 있습니다. 이미지에 대한 자세한 내용은 텍스처 및 데칼 을 참조하십시오.
데칼 대체 옵션
데칼은 다양한 응용 프로그램이 있지만, 일부 경우 다음 클래스 중 하나를 대신 선택하는 것이 좋습니다.
- 반복된 타일 텍스처의 경우 Texture 개체를 사용해야 합니다.
- GUI 요소를 적용하려면 SurfaceGui 개체를 사용해야 합니다
- 이미지에 조명 효과를 변경해야 하는 경우 SurfaceGui 개체를 사용해야 합니다.
코드 샘플
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
요약
속성
Class.Decal의 컬러 쉐이드.
데칼의 Decal.Transparency 속성을 배수로 사용합니다. 효과는 로컬 플레이어에게만 표시됩니다.
Class.Decal 에 적용할 이미지의 이미지 ID.
0이 완전히 불투명하고 1이 완전히 투명한 Decal의 투명도를 결정합니다.
여러 개의 데칼이 동일한 얼굴을 할당할 때 렌더링 순서를 결정합니다.
개체가 붙어있는 브릭의 얼굴을 설정합니다.
속성
Color3
Class.Decal의 컬러 쉐이드.
개발자는 이 속성이 색이 아닌 데칼의 썬팅만 설정하므로 색상이 아님을 알아야 합니다. 즉, Decal 과 함께 있는 이미지가 처음에 흰색이 아니었다면 이 속성을 사용하여 색을 자유롭게 변경할 수 없습니다.
Datatype.Color3의 RGB 속성을 줄이면 개발자가 데칼을 더 어둡게 만들 수 있습니다.
코드 샘플
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=1145367640" -- white circle
decal.Parent = part
part.Parent = workspace
local redTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(1, 0, 0) }
)
local greenTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 1, 0) }
)
local blueTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 0, 1) }
)
while true do
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
end
LocalTransparencyModifier
데칼의 Decal.Transparency 속성을 배수로 사용합니다. 효과는 Players.LocalPlayer에만 표시됩니다.
이 속성은 다른 스크립트가 Decal.Transparency를 설정하는 경우에 사용해야 합니다. 로컬 투명도 수정기의 이점은 원래 Decal.Transparency의 Decal를 변경할 필요 없이 변경할 수 있다는 것입니다.
Class.Decal 이 로컬 투명도 모드에 설정된 경우, Decal.Transparency 는 원래 투명도에 관계없이 완전히 투명합니다. Class.Decal.Transparency 가 0으로 설정되면 데칼의 렌더링 투명도가 1>Class.Decal.Transparency1> 값과 일치합니다. 수식
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
참고, 이 속성은 클라이언트에서만 사용되어야 하며 서버에 복제되지 않습니다.
For a variant of this property for BaseParts , see BasePart.LocalTransparencyModifier .
Texture
Class.Decal 에 적용할 이미지의 콘텐츠 ID.
데칼을 업로드하려면 어떻게 해야 하나요?
이미지는 Roblox에 업로드할 수 있지만 커뮤니티 가이드라인을 준수해야 합니다. 이미지를 업로드하는 방법에 대한 자세한 내용은 텍스처 및 데칼을 참조하십시오.
데칼의 콘텐츠 ID를 찾으려면 어떻게 해야 하나요?
Class.Sound 및 Animation 개체와는 달리 데칼의 콘텐츠 ID는 URL의 숫자와 동일하지 않습니다. 데칼의 콘텐츠 ID를 찾는 두 가지 주요 방법이 있습니다.
- Roblox Studio의 텍스처 속성에 URL을 붙여주세요. Roblox는 속성을 올바른 콘텐츠 ID로 자동으로 업데이트합니다. 이 작업은 Roblox Studio에서만 작동하며 스크립트나 게임이 실행되는 동안 수행할 수 없습니다.
- 게임에 데칼을 삽입하십시오, 일반적으로 이 작업은 '내 데칼'에 있는 도구 상자를 통해 수행됩니다. 콘텐츠 ID는 삽입된 데칼에서 찾을 수 있습니다. 참고, InsertService:LoadAsset() 는 이 메서드를 자동화하려는 경우에도 사용할 수 있습니다.
코드 샘플
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
Transparency
0이 완전히 불투명하고 1이 완전히 투명한 Decal의 투명도를 결정합니다.
참고, Decals 는 Roblox에 업로드된 원본 이미지 파일의 투명도를 존중합니다. 이를 통해 투명도를 변경하기 전에 Roblox에 업로드할 수 있고 Transparency 속성을 사용할 필요 없습니다.
Decal.LocalTransparencyModifier 은 데칼의 투명도를 조정하는 다중 요소 모드입니다. 이 투명도는 다른 스크립트에 의해 변경될 가능성이 높기 때문에 사용해서는 안 됩니다. 이 경우 플레이어 캐릭터의 경우와 마찬가지입니다.
For BaseParts , see BasePart.Transparency .
코드 샘플
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=699259085" -- roblox logo
decal.Parent = part
part.Parent = workspace
local tween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true),
{ Transparency = 1 }
)
tween:Play()
ZIndex
ZIndex 은 같은 Face 의 데칼이 어떤 순서로 표시되는지 결정합니다. 데칼은 순서대로 우선 순위가 높은 순서로 표시됩니다(값이 더 먼저 나타납니다). 따라서 더 ��
유효한 값의 범위는 -MAX_INT에서 MAX_INT까지 (2,147,483,647 또는 (2^31 - 1))입니다. 미래에 두 개의 이미 존재하는 데칼 사이에 데칼을 레이어해야 할지 확신하지 못하는 경우 100,
또한 참조하십시오.
- GuiObject.ZIndex , 동일한 행동을 하지만 GUI 요소에 대해