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