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

Was this helpful?