BasePart

BasePart : PVInstance

Overview

BasePart๋Š” Part, MeshPart ๋“ฑ ๊ฒŒ์ž„ ๊ณต๊ฐ„(Workspace)์—์„œ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œ๋˜๊ณ  ๋ฌผ๋ฆฌ ์—”์ง„์˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ชจ๋“  3D ์˜ค๋ธŒ์ ํŠธ์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ์ถ”์ƒ ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ๋ฌธ์„œ์—์„œ "Part"๋ผ๋Š” ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉ๋  ๋•Œ๋Š”, ํŠน์ •ํ•œ Part๋งŒ์ด ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„ BasePart ๊ณ„์—ด ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

BasePart๋Š” ๋‹ค์–‘ํ•œ ์š”์†Œ์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ BasePart๋ฅผ ํ•˜๋‚˜์˜ Model์— ๋ฌถ์–ด ํ•จ๊ป˜ ์ด๋™์‹œํ‚ค๊ฑฐ๋‚˜, SurfaceGui๋ฅผ ์ด์šฉํ•œ UI ํ‘œ์‹œ, PointLight๋ฅผ ํ†ตํ•œ ์กฐ๋ช…, ParticleEmitter๋‚˜ Beam ๊ฐ™์€ VFX ์ถ”๊ฐ€๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ ์žฅ์น˜(Constraint)์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, LinearVelocity, AngularVelocity ๋“ฑ๊ณผ ํ•จ๊ป˜ ๋ฌผ๋ฆฌ์  ์›€์ง์ž„์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ BasePart๊ฐ€ Tool์˜ ํ•˜์œ„ ๊ฐ์ฒด์ด๋ฉฐ ์ด๋ฆ„์ด "Handle"์ผ ๊ฒฝ์šฐ, ์บ๋ฆญํ„ฐ๊ฐ€ ์†์— ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Properties

CFrame

CFrame

CFrame์€ ์›”๋“œ ์ขŒํ‘œ๊ณ„์—์„œ BasePart์˜ ์œ„์น˜์™€ ํšŒ์ „์„ ์ •์˜ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, Position ์†์„ฑ๊ณผ ๋‹ฌ๋ฆฌ ํšŒ์ „๊ณผ ๋ฐฉํ–ฅ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํŒŒํŠธ์˜ ์ž์‹์œผ๋กœ Attachment๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด, ํ•ด๋‹น ํŒŒํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์ƒ๋Œ€ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

-- Position
Part.CFrame = CFrame.new(200, 50, 300)

-- Angle
local Rotation = CFrame.Angles(0, 0, 30)
Part.CFrame = Part.CFrame * Rotation

-- Position & Angle
Part.CFrame = CFrame.new(200, 50, 300) * CFrame.Angles(0, 40, 0)

-- LookAt
local TargetPosition = Vector3.new(0, 30, 0)
Part.CFrame = CFrame.lookAt(Part.Position, TargetPosition)

Anchored

bool

ํŒŒํŠธ๊ฐ€ ๋ฌผ๋ฆฌ์ ์ธ ํž˜์— ์˜ํ•ด ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์ด true์ด๋ฉด ํ•ด๋‹น ํŒŒํŠธ๋Š” ์ค‘๋ ฅ์ด๋‚˜ ์ถฉ๋Œ ๋“ฑ ๋ฌผ๋ฆฌ ์—”์ง„์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„๋„ ์œ„์น˜์™€ ํšŒ์ „์ด ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด Position ๋˜๋Š” CFrame ๊ฐ’์„ ์ง์ ‘ ์ˆ˜์ •ํ•˜๋ฉด ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๋ฉด Anchored ์†์„ฑ์˜ ๊ธฐ๋ณธ๊ฐ’์ด true๋กœ ์„ค์ •๋˜์–ด ๊ณ ์ •๋œ ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ถˆํ•„์š”ํ•œ ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ์„ ๋ฐฉ์ง€ํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ, ๋ฐฐ์น˜ํ•œ ํŒŒํŠธ๊ฐ€ ๋ฌผ๋ฆฌ์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋จผ์ € ์ด ์†์„ฑ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.Anchored = false

CanCollide

bool

ํŒŒํŠธ๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ถฉ๋Œ ์‹œ ํ†ต๊ณผ ๊ฐ€๋Šฅํ•œ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์ด false์ด๋ฉด ๋‹ค๋ฅธ ํŒŒํŠธ๋‚˜ ์บ๋ฆญํ„ฐ๊ฐ€ ํ•ด๋‹น ํŒŒํŠธ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ๋‚ด์—์„œ ๋‹จ์ˆœ ์žฅ์‹์šฉ์œผ๋กœ ๋ฐฐ์น˜๋œ ์˜ค๋ธŒ์ ํŠธ๋Š” ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ์ด ๋ถˆํ•„์š”ํ•˜๋ฏ€๋กœ, ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด CanCollide๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ์ถฉ๋Œ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด๋„ Touched ์ด๋ฒคํŠธ๋Š” ๊ณ„์† ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ CanTouch ์†์„ฑ์„ false๋กœ ์„ค์ •ํ•˜๋ฉด ์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.CanCollide = false

CanQuery

bool

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

CanTouch

bool

ํ•ด๋‹น ํŒŒํŠธ๊ฐ€ Touched, TouchEnded์™€ ๊ฐ™์€ ํ„ฐ์น˜ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

CanTouch์™€ CanCollide๋ฅผ ๋ชจ๋‘ false๋กœ ์„ค์ •ํ•˜๋ฉด ํŒŒํŠธ ๊ฐ„ ์ถฉ๋Œ ์—ฐ์‚ฐ์ด ์ƒ๋žต๋˜์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ์ด ๊ฒฝ์šฐ์—๋„ Raycast๋ฅผ ํ†ตํ•œ ๊ฐ์ง€๋Š” ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

local function OnTouched(otherPart)
    print(Part.Name, "Touched :", otherPart.Name)
end
Part.Touched:Connect(OnTouched)

Part.CanTouch = false

Size

Vector3

ํŒŒํŠธ์˜ ๊ฐ€๋กœยท์„ธ๋กœยท๋†’์ด ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.Size = Vector3.new(50, 50, 50)

AssemblyAngularVelocity

Vector3

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

AssemblyCenterOfMass

Vector3

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

AssemblyLinearVelocity

Vector3

ํ•ด๋‹น ํŒŒํŠธ๊ฐ€ ์†ํ•œ ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ์งˆ๋Ÿ‰ ์ค‘์‹ฌ์—์„œ์˜ ์„ ํ˜• ์†๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ€์ž์—ฐ์Šค๋Ÿฌ์šด ์›€์ง์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ง€์†์ ์ธ ์†๋„ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด VectorForce ์ธ์Šคํ„ด์Šค๋ฅผ, ์ˆœ๊ฐ„์ ์ธ ์†๋„ ๋ณ€ํ™”๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ApplyImpulse() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

print(Part.AssemblyLinearVelocity)

AssemblyMass

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

BrickColor

BrickColor

ํŒŒํŠธ์˜ ๊ธฐ๋ณธ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ์„ค์ •๋œ Material์˜ ์งˆ๊ฐ์— ์ƒ‰์ƒ์ด ํ•จ๊ป˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์ „์— ์ •์˜๋œ ์ƒ‰์ƒ์„ ๋น ๋ฅด๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋˜๋ฉฐ, ๋” ์ •๋ฐ€ํ•œ ์ƒ‰์ƒ ์กฐ์ ˆ์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Color ์†์„ฑ์„ ์ง์ ‘ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’๊ณผ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ BrickColor๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.BrickColor = BrickColor.new("Really red")

if Part.BrickColor.Name == "Really red" then
    print("Red!")
end

CastShadow

bool

ํ•ด๋‹น ํŒŒํŠธ์— ๊ทธ๋ฆผ์ž๋ฅผ ์ƒ์„ฑํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ๊ฐ’์€ false์ด๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์ž ๋ณต์žก๋„๋Š” Lighting ์„œ๋น„์Šค๋ฅผ ์„ ํƒํ•œ ๋’ค, ํ”„๋กœํผํ‹ฐ ํŒจ๋„์—์„œ Shadow Detail Level ๊ฐ’์„ ์กฐ์ •ํ•˜์—ฌ ์ „์ฒด ํŒŒํŠธ์˜ ๊ทธ๋ฆผ์ž ํ’ˆ์งˆ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ํŠน์ • ํŒŒํŠธ๋ฅผ ์„ ํƒํ•œ ํ›„ ํ”„๋กœํผํ‹ฐ ํŒจ๋„์—์„œ Enable Mesh Shadow Details๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๊ฐœ๋ณ„ ๋ฉ”์‹œ ๋‹จ์œ„๋กœ Mesh Shadow Detail Level์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ Lighting ์„œ๋น„์Šค์˜ ์ „์—ญ ์„ค์ •๋ณด๋‹ค ํ•ด๋‹น ๋ฉ”์‹œ์˜ ์„ค์ •์ด ์šฐ์„  ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆผ์ž ๋ณต์žก๋„ ๊ด€๋ จ ์„ค์ •์€ ๋Ÿฐํƒ€์ž„์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

print(Part.CastShadow)

CenterOfMass

Vector3

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

CollisionGroup

string

ํŒŒํŠธ๋ฅผ ํŠน์ • ์ถฉ๋Œ ๊ทธ๋ฃน์— ์ง€์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํŒŒํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Default ๊ทธ๋ฃน์— ์†ํ•˜๋ฉฐ ๋นˆ ๋ฌธ์ž์—ด์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถฉ๋Œ ๊ทธ๋ฃน ๊ฐ„์—๋Š” ์ถฉ๋Œ ์—ฌ๋ถ€๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ํŒŒํŠธ๋ผ๋ฆฌ๋งŒ ๋ถ€๋”ชํžˆ๊ฑฐ๋‚˜ ์„œ๋กœ๋ฅผ ํ†ต๊ณผํ•˜๋„๋ก ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ ์ฃผ๋กœ ๊ฒŒ์ž„ ๋‚ด์—์„œ ์˜ค๋ธŒ์ ํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฒ”์œ„๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜๊ฑฐ๋‚˜, ๋ถˆํ•„์š”ํ•œ ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ์„ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

local PhysicsService = game:GetService("PhysicsService")

local DefaultGroup = "Default"
local FallGroup = "Fall"
PhysicsService:RegisterCollisionGroup(FallGroup)

wait(2)
PhysicsService:CollisionGroupSetCollidable(DefaultGroup, FallGroup, false)

Part.CollisionGroup = FallGroup

Color

Color3

ํŒŒํŠธ์˜ ๊ธฐ๋ณธ ์ƒ‰์ƒ์„ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ์„ค์ •๋œ Material์˜ ์งˆ๊ฐ์— ์ƒ‰์ƒ์ด ํ•จ๊ป˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด BrickColor ์†์„ฑ์ด ์ด์— ๋งž์ถฐ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์ƒ‰์ƒ์œผ๋กœ ์ž๋™ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

BrickColor ์†์„ฑ์ด ์‚ฌ์ „์— ์ •์˜๋œ ์ƒ‰์ƒ ์ค‘์—์„œ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ๋ฉด, Color๋Š” ์‹ค์ˆ˜ ๊ฐ’์ด๋‚˜ RGB๋ฅผ ํ†ตํ•ด ์ƒ‰์ƒ์„ ์ง์ ‘ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

wait(2)
Part.Color = Color3.new(0, 0, 1) -- Blue

wait(2)
Part.Color = Color3.fromRGB(255, 0, 0) -- Red

CurrentPhysicalProperties

PhysicalProperties

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

CustomPhysicalProperties

PhysicalProperties

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

ExtentsCFrame

CFrame

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

ExtentsSize

Vector3

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

LocalTransparencyModifier

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Locked

bool

์ŠคํŠœ๋””์˜ค ํŽธ์ง‘ ๋ชจ๋“œ์—์„œ ๋ทฐํฌํŠธ ๋‚ด ํ•ด๋‹น ํŒŒํŠธ๋ฅผ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•ด ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์ฃผ๋กœ ๊ฑด๋ฌผ, ์ง€ํ˜•, ์žฅ์‹ ์š”์†Œ ๋“ฑ์„ ๋ฐฐ์น˜ํ•œ ๋’ค, ์˜๋„์น˜ ์•Š์€ ์ˆ˜์ •์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

print(Part.Locked)

CanClimb

bool

์บ๋ฆญํ„ฐ๊ฐ€ ํ•ด๋‹น ํŒŒํŠธ๋ฅผ ๋“ฑ๋ฐ˜ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

CanClimb์ด ํ™œ์„ฑํ™”๋œ Part์— ์บ๋ฆญํ„ฐ๊ฐ€ ๋‹ฟ์œผ๋ฉด Climbing ์ƒํƒœ๋กœ ์ „ํ™˜๋˜์–ด ๋ฒฝ์„ ์˜ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, CanClimb์ด ์ผœ์ ธ ์žˆ์–ด๋„ ์บ๋ฆญํ„ฐ๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ๋ฒฝ์˜ ๊ฒฝ์‚ฌ๊ฐ€ GameSettings์˜ MaxSlopeAngle ๊ฐ’๋ณด๋‹ค ์ž‘๋‹ค๋ฉด Climbing ์ƒํƒœ๋กœ ์ „ํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ, ๋Œ€์‹  ๊ฒฝ์‚ฌ๋ฉด์„ ๊ฑท๊ฑฐ๋‚˜ ๋›ฐ์–ด ์ด๋™ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ false์ด๋ฏ€๋กœ, ์‚ฌ๋‹ค๋ฆฌ์ฒ˜๋Ÿผ ๋“ฑ๋ฐ˜์ด ํ•„์š”ํ•œ ์˜ค๋ธŒ์ ํŠธ๋Š” ์ด ์†์„ฑ์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Code Samples

Mass

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Massless

bool

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Material

Enum.Material

ํŒŒํŠธ์˜ ํ‘œ๋ฉด ์งˆ๊ฐ์„ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

Material๊ณผ Color๋ฅผ ์ ์ ˆํžˆ ์กฐํ•ฉํ•˜๋ฉด ๊ฒŒ์ž„ ๋‚ด์—์„œ ๋‹ค์–‘ํ•œ ๋ถ„์œ„๊ธฐ์™€ ์‹œ๊ฐ์  ํšจ๊ณผ๋ฅผ ์—ฐ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.Material = Enum.Material.StoneBrick

MaterialVariant

string

์‚ฌ์ „์— ์ •์˜๋œ ๊ธฐ๋ณธ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ๋ณ€ํ˜•ํ•œ MaterialVariant๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅํ•œ MaterialVariant ์ด๋ฆ„์ด ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น MaterialVariant๋กœ ์ ์šฉ๋˜๋ฉฐ, ๋™์‹œ์— ํ•ด๋‹น MaterialVariant๊ฐ€ ์†ํ•œ ๊ธฐ๋ณธ ๋จธํ‹ฐ๋ฆฌ์–ผ(Base Material)์— ๋งž์ถฐ Material ์†์„ฑ๋„ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

print(Part.MaterialVariant)

Position

Vector3

์›”๋“œ ์ขŒํ‘œ๊ณ„์—์„œ ํŒŒํŠธ์˜ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

CFrame์˜ ์œ„์น˜ ๊ฐ’์„ ๋ฐ˜์˜ํ•˜๋ฉฐ, CFrame์ด๋‚˜ ์ด ์†์„ฑ์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

Part.Position = Vector3.new(0, 50, -500)

ReceiveAge

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Reflectance

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

ResizeIncrement

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

RootPriority

number

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Rotation

Vector3

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Code Samples

Orientation

Vector3

Vector3 ๊ฐ’์œผ๋กœ ํŒŒํŠธ์˜ X, Y, Z ์ถ• ํšŒ์ „์„ ๋„ ๋‹จ์œ„๋กœ ์ง€์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ํšŒ์ „์€ Y, X, Z ์ˆœ์„œ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฐฉ์‹์€ ์ผ๋ฐ˜์ ์ธ ์˜ค์ผ๋Ÿฌ ๊ฐ์ด ์•„๋‹Œ Tait-Bryan ๊ฐ์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ด๋Š” ๊ฐ๊ฐ ์š”(yaw), ํ”ผ์น˜(pitch), ๋กค(roll)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

CFrame.Angles() ์ƒ์„ฑ์ž๋Š” Z, Y, X ์ˆœ์œผ๋กœ ํšŒ์ „์„ ์ ์šฉํ•˜๋ฏ€๋กœ Orientation ์†์„ฑ๊ณผ ์ž‘๋™ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ •๋ฐ€ํ•œ ํšŒ์ „ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ CFrame์„ ์ง์ ‘ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent


### Transparency
`number`

ํŒŒํŠธ์˜ ํˆฌ๋ช…๋„๋ฅผ ์„ค์ •ํ•˜๋Š” ์†์„ฑ์œผ๋กœ, ๊ฐ’์€ 0(์™„์ „ ๋ถˆํˆฌ๋ช…)๋ถ€ํ„ฐ 1(์™„์ „ ํˆฌ๋ช…)๊นŒ์ง€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’์ด 1์ด๋ฉด ํŒŒํŠธ๋Š” ์ „ํ˜€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š์œผ๋ฉฐ, 0๋ณด๋‹ค ํฌ๊ณ  1๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ์—๋Š” ๋ฐ˜ํˆฌ๋ช… ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์™„์ „ํžˆ ํˆฌ๋ช…ํ•œ ํŒŒํŠธ๋Š” ๋ Œ๋”๋ง๋˜์ง€ ์•Š์•„ ์„ฑ๋Šฅ ๋ถ€๋‹ด์ด ์—†์ง€๋งŒ, ๋ฐ˜ํˆฌ๋ช… ํŒŒํŠธ๋Š” GPU ์—ฐ์‚ฐ์ด ์ถ”๊ฐ€๋กœ ํ•„์š”ํ•ด ๋‹ค์ˆ˜ ์‚ฌ์šฉ ์‹œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

#### Code Samples

```lua
local Part = script.Parent

Part.Transparency = 0.5

Methods

ApplyImpulse

ํŒŒํŠธ์— ์ˆœ๊ฐ„์ ์ธ ๋ฌผ๋ฆฌ ํž˜์„ ๊ฐ€ํ•ด ์ฆ‰์‹œ ๊ฐ€์†์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํž˜์€ ํ•ญ์ƒ ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ์งˆ๋Ÿ‰ ์ค‘์‹ฌ์— ์ ์šฉ๋˜๋ฏ€๋กœ ํšŒ์ „์ด ์•„๋‹Œ ์ง์„  ์ด๋™๋งŒ ๋ฐœ์ƒํ•˜๋ฉฐ, Anchored ์†์„ฑ์ด false์ธ ๊ฒฝ์šฐ์—๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

Parameters

Vector3 impulse

์ ์šฉํ•  ์„ ํ˜•(์ง์„ ) ๋ฌผ๋ฆฌ ์ž„ํŽ„์Šค ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค.

Return

void

Code Samples

local Part = script.Parent

local Force = Vector3.new(0, 0, -200000)

wait(2)
Part.Anchored = false
Part:ApplyImpulse(Force)

GetMass

ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Parameters

Return

number

Code Samples

Events

TouchEnded

๋‘ ํŒŒํŠธ๊ฐ€ ์„œ๋กœ ๋‹ฟ์•„ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ ‘์ด‰์ด ํ•ด์ œ๋  ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋ฐœ์ƒ ์กฐ๊ฑด์€ Touched ์ด๋ฒคํŠธ์™€ ๊ฑฐ์˜ ๋™์ผํ•˜์ง€๋งŒ, ์‹œ์ ์ด ์ ‘์ด‰ ์‹œ์ž‘์ด ์•„๋‹Œ ์ ‘์ด‰ ์ข…๋ฃŒ๋ผ๋Š” ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ์ ์ธ ์ด๋™๋ฟ ์•„๋‹ˆ๋ผ, ์Šคํฌ๋ฆฝํŠธ๋กœ Position ๋˜๋Š” CFrame ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ ‘์ด‰์ด ํ•ด์ œ๋œ ๊ฒฝ์šฐ์—๋„ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋‹จ, ์—๋””ํ„ฐ์—์„œ ๋ฏธ๋ฆฌ ๊ฒน์ณ ๋ฐฐ์น˜ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ, CanTouch ์†์„ฑ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Parameters

BasePart otherPart

์ด๋ฒคํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํŒŒํŠธ์— ์ ‘์ด‰ ํ•ด์ œ๋œ ๋Œ€์ƒ ํŒŒํŠธ์ž…๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

local function OnTouchEnded(otherPart)
    print("[OnTouchEnded]", otherPart)
end
Part.TouchEnded:Connect(OnTouchEnded)

Touched

์ด๋ฒคํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํŒŒํŠธ๊ฐ€ ๋‹ค๋ฅธ ํŒŒํŠธ์™€ ์ ‘์ด‰ํ•  ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ฆฌ์ ์ธ ์ด๋™๋ฟ ์•„๋‹ˆ๋ผ, ์Šคํฌ๋ฆฝํŠธ๋กœ Position ๋˜๋Š” CFrame ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ ‘์ด‰์ด ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋„ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

๋‹จ, ์—๋””ํ„ฐ์—์„œ ๋ฏธ๋ฆฌ ๊ฒน์ณ ๋ฐฐ์น˜ํ•œ ๊ฒฝ์šฐ์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ, CanTouch ์†์„ฑ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฉด ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Parameters

BasePart otherPart

์ด๋ฒคํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํŒŒํŠธ์— ์ ‘์ด‰ํ•œ ๋Œ€์ƒ ํŒŒํŠธ์ž…๋‹ˆ๋‹ค.

Code Samples

local Part = script.Parent

local function OnTouched(otherPart)
    print("[OnTouched]", otherPart)
end
Part.Touched:Connect(OnTouched)

Last updated