WorldObject

WorldObject

์›”๋“œ์— ๋ฐฐ์น˜๋œ ์˜ค๋ธŒ์ ํŠธ์˜ ๊ณตํ†ต๋œ ์†์„ฑ๊ณผ ์ด๋ฒคํŠธ, ํ•จ์ˆ˜๋“ค์ด์—์š”

์ด๋ฒคํŠธ

OnUpdateEvent

์ƒ์„ฑ ํ›„ ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function(updateTime), updateTime ์€ number ์ž…๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube
local playTime = 0

local function UpdateEvent(updateTime) --OnUpdateEvent๋กœ ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜๋Š” updateTime ์ธ์ž๊ฐ€ ๊ณ ์ •์ ์œผ๋กœ ๋“ค์–ด๊ฐ€์š”.
    playTime = playTime + updateTime --์‹œ๊ฐ„์„ ๊ธฐ๋กํ•ด์š”.
end
cube.OnUpdateEvent:Connect(UpdateEvent) --Game์ด๋‚˜ ์˜ค๋ธŒ์ ํŠธ์— ๋งคํ”„๋ ˆ์ž„๋งˆ๋‹ค ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ด์š”.

OnDestroyEvent

์‚ญ์ œ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube
local function DestroyEvent()
    print("Destroy!")
end
cube.OnDestroyEvent:Connect(DestroyEvent) --์˜ค๋ธŒ์ ํŠธ์— ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํŒŒ๊ดด๋์„๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ด์š”.

Game:DeleteObject(cube)

OnEnableEvent

Enable ๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube

local function InitObj(self)
    print("Enable")
end
cube.OnEnableEvent:Connect(InitObj) --ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ Enable๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

wait(1)
cube.Enable = true

OnDisableEvent

Disable ๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. ์—ฐ๊ฒฐํ•จ์ˆ˜ ํ˜•์‹์€ function() ์ž…๋‹ˆ๋‹ค.

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube

local function BackupToPoolList(self)
    print("Disable")
end
cube.OnDisableEvent:Connect(BackupToPoolList) --ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ Disable๋ ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

wait(1)
cube.Enable = false

์†์„ฑ

Enable

๊ฐ์ฒด ํ™œ์„ฑํ™” ์—ฌ๋ถ€

-- ์ƒ˜ํ”Œ --

Workspace.Cube.Enable = false --์˜ค๋ธŒ์ ํŠธ์˜ ์ƒํƒœ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์š”. (์ž์‹ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ž์‹๋“ค์˜ ์ƒํƒœ๋„ ๋ชจ๋‘ false๊ฐ€ ๋ผ์š”. ๋‹จ, ์ถฉ๋Œ์˜์—ญ์—๋Š” ์˜ํ–ฅ์ด ์—†์–ด์š”.)

Transform

๊ฐ์ฒด์˜ Matrix

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube
local targetTransform = cube.Transform

targetTransform.Location = Vector.new(300, 0, 100)
targetTransform.Rotation = Vector.new(55, 100, 0)
cube.Transform = targetTransform --์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด๊ฐ„์œผ๋กœ ์ด๋™์‹œ์ผœ์š”. (์บ๋ฆญํ„ฐ๋Š” ๋ณด๊ฐ„์—†์ด ์›€์ง์—ฌ์š”.)

LocalTransform

๊ฐ์ฒด์˜ Local Transform

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
print(Cube.LocalTransform)

local LocalTR = Workspace.SpawnPoint.LocalTransform
Cube.LocalTransform = LocalTR

Location

๊ฐ์ฒด์˜ ์œ„์น˜ Vector

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
Cube.Location = Vector.new(0, 300, 200)

LocalLocation

๊ฐ์ฒด์˜ ๋กœ์ปฌ์ขŒํ‘œ Vector

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
Cube.LocalLocation = Vector.new(0, 300, 200)

Rotation

๊ฐ์ฒด์˜ ํšŒ์ „ Vector

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
Cube.Rotation = Vector.new(0, 100, 0)

LocalRotation

๊ฐ์ฒด์˜ ๋กœ์ปฌ ํšŒ์ „ Vector

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
Cube.LocalRotation = Vector.new(0, 100, 0)

Scale

๊ฐ์ฒด์˜ ํฌ๊ธฐ Vector

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube
local scale = Cube.Scale --ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ ํฌ๊ธฐ๋ฅผ 100์œผ๋กœ ๋‚˜๋ˆ ์„œ Vector๋กœ ๋ฐ˜ํ™˜ํ•ด์š”.(์˜ˆ๋ฅผ ๋“ค์–ด x๊ฐ’์ด 100์ด๋ฉด 1๋กœ ๋ฐ˜ํ•œ๋ผ์š”.)
print(scale)

Cube.Scale = Vector.new(5, 5, 5) --์˜ค๋ธŒ์ ํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ด์š”.

Visible

๊ฐ์ฒด์˜ ๊ฐ€์‹œ์„ฑ

-- ์ƒ˜ํ”Œ --

Workspace.Cube.Visible = false --์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด์ด์ง€ ์•Š๊ฒŒ ํ•ด์š”.

ํ•จ์ˆ˜

number GetKey()

๊ฐ์ฒด์˜ ํ‚ค ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

-- ์ƒ˜ํ”Œ --

print(Workspace.Floor:GetKey())

void SetTransformWithCollisionCheck(bool CollisionCheck)

ํ˜„์žฌ ๋งคํŠธ๋ฆญ์Šค์—์„œ ์„ค์ • ๋œ ๋งคํŠธ๋ฆญ์Šค๋กœ ๋ณด๊ฐ„์ด ๋˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’, bool ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube

local targetTransform = cube.Transform
targetTransform.Location = Vector.new(300, 0, 100)
cube:SetTransformWithCollisionCheck(targetTransform, true) --์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด๊ฐ„์œผ๋กœ ์ด๋™์‹œ์ผœ์š”. (์บ๋ฆญํ„ฐ๋Š” ๋ณด๊ฐ„์—†์ด ์›€์ง์—ฌ์š”.)

void SetLocalTransformWithCollisionCheck(bool CollisionCheck)

ํ˜„์žฌ ๋งคํŠธ๋ฆญ์Šค์—์„œ ์„ค์ • ๋œ ๋งคํŠธ๋ฆญ์Šค๋กœ ๋ณด๊ฐ„์ด ๋˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๋กœ์ปฌ์ขŒํ‘œ๊ธฐ์ค€์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š” ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’, bool ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube

local targetLocalTransform = cube.LocalTransform
targetLocalTransform.Location = Vector.new(300, 0, 100)
cube:SetLocalTransformWithCollisionCheck(targetLocalTransform, true) --์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด๊ฐ„์œผ๋กœ ์ด๋™์‹œ์ผœ์š”. (์บ๋ฆญํ„ฐ๋Š” ๋ณด๊ฐ„์—†์ด ์›€์ง์—ฌ์š”.)

void Teleport()

์ˆœ๊ฐ„์ด๋™ ํ•˜๋Š” ๋งคํŠธ๋ฆญ์Šค๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (Matrix ๊ฐ’)

-- ์ƒ˜ํ”Œ --

local cube = Workspace.Cube

local targetTransform = cube.Transform
targetTransform.Location = Vector.new(0, 100, 0)
cube:Teleport(targetTransform) --์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ณด๊ฐ„์—†์ด ๋ฐ”๋กœ ์ด๋™์‹œ์ผœ์š”.

void SetLocationWithCollisionCheck(Vector position, bool bCollisionCheck)

๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์–ด์š”. (์„ค์ •ํ•  ์œ„์น˜ Vector ๊ฐ’, ์ถฉ๋Œ ์ฒ˜๋ฆฌ ์—ฌ๋ถ€)

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube

local targetLocation =  Vector.new(0, 300, 200)
Cube:SetLocationWithCollisionCheck(targetLocation, true)

void SetTag(string Tag)

๊ฐ์ฒด์˜ tag๋ฅผ ์„ค์ •ํ•ด์š”. (์„ค์ •ํ•  tag)

-- ์ƒ˜ํ”Œ --

print(Workspace.Floor:GetTag())
Workspace.Floor:SetTag("SomeTag")
print(Workspace.Floor:GetTag())

string GetTag()

๊ฐ์ฒด์— ์„ค์ •๋œ tag๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

-- ์ƒ˜ํ”Œ --

print(Workspace.Floor:GetTag())
Workspace.Floor:SetTag("SomeTag")
print(Workspace.Floor:GetTag())

void ConnectEventFunction(string customevent, function TargetFunction)

์œ ์ €๊ฐ€ ์ถ”๊ฐ€ํ•œ ์˜ค๋ธŒ์ ํŠธ ์ปค์Šคํ…€ ์ด๋ฒคํŠธ์— ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”. (์ด๋ฒคํŠธ ์ด๋ฆ„, ์—ฐ๊ฒฐ ํ•จ์ˆ˜)

-- ์ƒ˜ํ”Œ --

--์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ์—์„œ
local cube = Workspace.cube

--์„œ๋ฒ„์—์„œ ์ด๋ฒคํŠธ ์ƒ์„ฑ์‹œ ์ฒซ ์ธ์ž๋กœ player๊ฐ€ ๋“ค์–ด๊ฐ€์š”.
local function ServerSomeFunc(player)
    print("Call ServerSomeFunc")
end
cube:ConnectEventFunction("ServerSomeFunc", ServerSomeFunc) --์˜ค๋ธŒ์ ํŠธ์— "ServerSomeFunc"๋ผ๋Š” ์ด๋ฒคํŠธ ์ด๋ฆ„์œผ๋กœ SomeFunc ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•ด์š”.
                                                            --์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์•„๋‹Œ Game์—๋„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”.
                                                            --๊ฐ™์€ ๋Œ€์ƒ์— ๋“ฑ๋ก๋œ ์ด๋ฒคํŠธ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด์š”.
                                                            --๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ๊ฒฝ์šฐ ํ˜ธ์ถœํ• ๋•Œ ์—ฐ๊ฒฐ๋œ ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋‘ ํ˜ธ์ถœ๋ผ์š”.

-----------------------------------
--ํด๋ผ ์Šคํฌ๋ฆฝํŠธ์—์„œ
local cube = Workspace.cube

--ํด๋ผ์—์„œ ์ด๋ฒคํŠธ ์ƒ์„ฑ์‹œ player ์ธ์ž๋ฅผ ์“ฐ์ง€ ์•Š์•„๋„ ๋ผ์š”.
local function ClientSomeFunc()
    print("Call ClientSomeFunc")
end
cube:ConnectEventFunction("ClientSomeFunc", ClientSomeFunc)

void LookAt(vector location)

์˜ค๋ธŒ์ ํŠธ๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ”๋ผ๋ณด๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด์š”. (๋ฐ”๋ผ๋ณผ ์œ„์น˜ Vector)

-- ์ƒ˜ํ”Œ --

local Cube = Workspace.Cube

wait(2)
Cube:LookAt(Workspace.SpawnPoint.Location)

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ชจ ์˜ค๋ธŒ์ ํŠธ ๊ธฐ๋Šฅ๋“ค

์†์„ฑ

์ด๋ฆ„

์„ค๋ช…

๋ถ€๋ชจ ๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

๊ฐ์ฒด์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ด๋ฒคํŠธ

์ด๋ฆ„

์„ค๋ช…

ํ•จ์ˆ˜

์ด๋ฆ„

์„ค๋ช…

์ถ”๊ฐ€๋œ ๊ฐ’์ด ๋ณ€๊ฒฝ ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์š”. (Value ์ด๋ฆ„, ์—ฐ๊ฒฐ ํ•จ์ˆ˜)

์ด๋ฆ„์œผ๋กœ ์ž์‹ ๊ฐ์ฒด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”. (์ฐพ๊ณ ์‹ถ์€ ์ž์‹ ๊ฐ์ฒด ์ด๋ฆ„)

์ž์‹ ๊ฐ์ฒด์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”.

์บ๋ฆญํ„ฐ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์Šคํ…Œํ‹ฑ ๋ฉ”์‹œ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

FX์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

Sound์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํฌ์ธํŠธ ๋ผ์ดํŠธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ŠคํฌํŠธ ๋ผ์ดํŠธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์„œํ”ผ์Šค UI์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์Šคํฌ๋ฆฐ UI์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ„ฐ์น˜ UI์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์•„์ดํ…œ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

NPC์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ŠคํŠธ๋ฆฝํŠธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

Collider์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

Widget์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

Camera์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธ ํ•  ์ˆ˜์žˆ์–ด์š”.

ํ•ด๋‹น ์˜ค๋ธŒ์ ํŠธ์˜ ๊ฐ’์ด ์œ ํšจํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฒกํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, Vector ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ์‹ค์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, number ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ bool๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, bool ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, string ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

ํ•ด๋‹น ๊ฐ์ฒด์— ์„œ๋ฒ„, ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ปฌ๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์š”. (์ถ”๊ฐ€ํ•  Value ์ด๋ฆ„, Color ๋ฐ์ดํ„ฐ, Enum.ReplicateType.ํƒ€์ž… , ๋™๊ธฐํ™” ์‹œ๊ฐ„)

Last updated