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?