[source] | examples [title] | CostumeManagerComponent [page] | apiReference/Components/CostumeManagerComponent [code] | Event Handler: [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { --Parameters local TriggerBodyEntity = event.TriggerBodyEntity -------------------------------------------------------- if self:IsServer() == true then return end local costumeManager = TriggerBodyEntity.Cost
[source] | examples [title] | SpriteRendererComponent [page] | apiReference/Components/SpriteRendererComponent [code] | Property: [Sync] number Meso = 0 Method: [server only] void OnBeginPlay () { self.Meso = _UtilLogic:RandomIntegerRange(1, 1500) local sprite = self.Entity.SpriteRendererComponent if self.Meso < 50 then sprite.SpriteRUID = "000000" elseif self.Meso < 100 then sprite.SpriteRUID = "000000"
[source] | examples [title] | UITransformComponent [page] | apiReference/Components/UITransformComponent [code] | Property: [None] number offset = 0 [None] number dir = 1.0 Method: [client only] void OnUpdate (number delta) { local offsetPerDelta = delta * 100.0 * self.dir self.offset = self.offset + offsetPerDelta if self.dir > 0 and self.offset >= 100 then self.dir = -1.0 elseif self.dir < 0 and sel
[source] | examples [title] | SpriteGUIRendererComponent [page] | apiReference/Components/SpriteGUIRendererComponent [code] | Property: [None] number Fill = 0 [None] boolean IsRequire = false Method: [client only] void OnBeginPlay () { local renderer = self.Entity.SpriteGUIRendererComponent if not renderer then return end self.IsRequire = true renderer.ImageRUID = "000000" renderer.Type = ImageType.Filled rende
[source] | examples [title] | TweenCircularComponent [page] | apiReference/Components/TweenCircularComponent [code] | local tween =self.Entity.TweenCircularComponent tween.Degree = 0 -- 회전 반경을 2로 설정합니다. tween.Radius = 2 -- 1초에 180도만큼의 속력으로 회전합니다. 한 바퀴 회전하는 데 2초가 소요됩니다. tween.Speed = 180
[source] | examples [title] | PlayerComponent [page] | apiReference/Components/PlayerComponent [code] | [server only] [self] HandleTriggerEnterEvent (TriggerEnterEvent event) { -- Parameters local TriggerBodyEntity = event.TriggerBodyEntity -------------------------------------------------------- local player = self.Entity.PlayerComponent if TriggerBodyEntity.Name == "Check Point" then
[source] | examples [title] | TransformComponent [page] | apiReference/Components/TransformComponent [code] | Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent local zRotation = transform.ZRotation transform.ZRotation = zRotation + (self.AngularSpeed * delta) }
[source] | examples [title] | TransformComponent [page] | apiReference/Components/TransformComponent [code] | Property: [None] number AngularSpeed = 360 Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent transform:Rotate(self.AngularSpeed * delta) }
[source] | examples [title] | TransformComponent [page] | apiReference/Components/TransformComponent [code] | Property: [None] Vector2 Gravity = Vector2(0,-9.8) [Sync] Vector2 CurrentVelocity = Vector2(0,0) Method: [server only] void OnUpdate (number delta) { local transform = self.Entity.TransformComponent self.CurrentVelocity = self.CurrentVelocity + (self.Gravity * delta) local deltaX = self.Curr
[source] | examples [title] | TriggerComponent [page] | apiReference/Components/TriggerComponent [code] | Property: [Sync] boolean IsGettingHealed = false [Sync] number Hp = 1000 Method: [server only] void OnUpdate (number delta) { if self.IsGettingHealed then local player = self.Entity.PlayerComponent self.Hp = self.Hp + (10.0 * delta) player.Hp = math.floor(self.Hp) end } Event Han
[source] | examples [title] | TextComponent [page] | apiReference/Components/TextComponent [code] | Property: [None] number TimerID = 0 [None] number MessageLength = 0 [None] number MessageIdx = 0 [None] string RawMessage = "" Method: [client only] void OnBeginPlay() { self.Entity.Parent.Enable = true self.InputMessage = "안녕하세요. MSW에 오신 것을 환영합니다." local textComponent = self.Entity.TextCo
[source] | examples [title] | ScreenMessageLogic [page] | apiReference/Logics/ScreenMessageLogic [code] | Event Hanlder: [server only] [service: UserService] HandleUserEnterEvent (UserEnterEvent event) { -- Parameters local UserId = event.UserId -------------------------------------------------------- local userEntity = _UserService:GetUserEntityByUserId(UserId) local userName = userEntity.Nam
[source] | examples [title] | ScreenMessageLogic [page] | apiReference/Logics/ScreenMessageLogic [code] | Event Handler: [client only] [self] HandleDeadEvent (DeadEvent event) { -- Parameters -------------------------------------------------------- if _UserService.LocalPlayer ~= self.Entity then return end _ScreenMessageLogic:PrivateMsg("YOU DIED") }
[source] | examples [title] | KinematicbodyComponent [page] | apiReference/Components/KinematicbodyComponent [code] | Method: [client only] void OnUpdate () { if _UserService.LocalPlayer ~= self.Entity then return end local kinematicbody = self.Entity.KinematicbodyComponent local isOnGround = kinematicbody:IsOnGround() kinematicbody.EnableTileCollision = isOnGround }
[source] | examples [title] | RectTileMapComponent [page] | apiReference/Components/RectTileMapComponent [code] | Method: [client only] void OnUpdate () { if _UserService.LocalPlayer ~= self.Entity then return end local transform = self.Entity.TransformComponent local movement = self.Entity.MovementComponent local tilemap = self.Entity.CurrentMap:GetFirstChildComponentByTypeName("RectTileMapComponent"
[source] | examples [title] | CollisionSimulator [page] | apiReference/Misc/CollisionSimulator [code] | Method: [server only] void OnUpdate (number delta) { local position = self.Entity.TransformComponent.WorldPosition:ToVector2() local circleShape = CircleShape(position, 3) local simulator = _CollisionService:GetSimulator(self.Entity) -- 반경 3 이내에 TriggerComponent를 가진 엔티티를 감지합니다. local overlap
[source] | examples [title] | CollisionSimulator [page] | apiReference/Misc/CollisionSimulator [code] | Property: [None] any CircleShape = nil [None] table Overlaps = {} Method: [server only] void OnBeginPlay () { self.CircleShape = CircleShape(Vector2.zero, 3) self.Overlaps = {} } [server only] void OnUpdate (number delta) { local position = self.Entity.TransformComponent.WorldPosition:ToVector2
[source] | examples [title] | CollisionSimulator [page] | apiReference/Misc/CollisionSimulator [code] | Method: [server] void RaycastAndDestroyEntity (Vector3 endPoint) { local startPoint = self.Entity.TransformComponent.WorldPosition local diff = endPoint - startPoint local distance = diff:Magnitude() local direction = diff:Normalize():ToVector2() local origin = startPoint:ToVector2() local
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | Method: [client only] void ResourceLoadWithLoadingScreen() { -- 유저에게 로딩 화면을 보여줍니다. self:ShowLoadingScreen() -- 로드할 리소스 목록입니다. local ruids = { "6d1a308b27164b02921d812b05c78cba", "0516d7594a394561893e04de713cfb6a", "ce55606c96d94c059227f2956a1ae786", "b64e41d2e3774276aa7db7bdb7441
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | [server only] void OnBeginPlay() { -- 스프라이트 업로드 허용 여부 결정 콜백을 등록합니다. _ResourceService:SetSpriteUploadValidationCallback(self.ValidateSpriteUpload) } [server only] boolean ValidateSpriteUpload(string userId) { if self:IsAuthorizedUser(userId) == false then -- 스프라이트 업로드를 막습니다. return false end
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | [client only] void CaptureScreenshotAndUpload() { -- 스크린샷을 찍어 데이터화합니다. local screenshotError, pixelData = _ScreenshotService:CaptureFullScreenAsPixelDataAndWait() -- 스크린샷을 찍는 과정에서 오류가 발생했는지 확인합니다. if screenshotError ~= ScreenshotError.Success then log_error("Failed to capture screenshot. e
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | Event Handler: [server only] [service: ResourceService] HandleResourceUploadEvent { -- Parameters local RUID = event.RUID local UserId = event.UserId -------------------------------------------------------- -- 리소스 업로드에 성공했을 때 서버에서 발생하는 이벤트입니다. local userEntity = _UserService:GetUserEntity
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | Method: void OnBeginPlay() { -- sprite local type = _ResourceService:GetTypeAndWait('f55cd1b715c14593a97caff8b147d544') log(type) -- animationclip local type2 = _ResourceService:GetTypeAndWait('235ede11f6a24ecb85f6271833d06ba0') log(type2) }
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | Method: [client only] void UpgradeSkill(string id) { -- 스킬의 제거 및 추가를 담당하는 함수들을 호출합니다. self:RemoveSkill(self.currentId) self.currentId = id self:AddSkill(self.currentId) local oldRuids = self.currentRuids -- 이전 스킬에서 사용하던 리소스들을 캐시에서 해제합니다. _ResourceService:RemoveCaches(oldRuids) -
[source] | examples [title] | ResourceService [page] | apiReference/Services/ResourceService [code] | Method: [client only] void BeforeMoveLobbyMap() { -- 캐싱된 모든 리소스를 캐시에서 해제합니다. _ResourceService:ClearCaches() -- 맵 이동 시 UnloadUnusedResources()는 내부적으로 자동 호출됩니다. -- _ResourceService:UnloadUnusedResources(0) }
[source] | examples [title] | WorldShopService [page] | apiReference/Services/WorldShopService [code] | Method: [server only] void OnBeginPlay () { -- 상품 지급 콜백을 등록합니다. _WorldShopService:SetProcessPurchaseCallback(self.ProcessPurchase) } [server only] boolean ProcessPurchase (any purchaseInfo) { log("Process purchase. PurchaseId: " .. purchaseInfo.PurchaseId .. ", UserId: " .. purchaseInfo.UserId .
[source] | examples [title] | WorldShopService [page] | apiReference/Services/WorldShopService [code] | Method: [server only] void OnBeginPlay () { -- 상품 ID별 지급 함수 테이블을 구성합니다. -- 이 예제에서 지급 함수는 유저 Entity를 인자로 받고 지급 성공 여부를 boolean으로 리턴합니다. self._T.productPurchaseFunctions = {} -- ID가 "000000"인 상품은 유저에게 1000 코인을 지급합니다. self._T.productPurchaseFunctions["000000"] = function(userEntity) return self
[source] | examples [title] | WorldShopService [page] | apiReference/Services/WorldShopService [code] | Method: void SearchOnSaleItems () { -- 상품 종류가 아이템이고, 판매 상태가 판매 중인 상품을 검색합니다. local pages = _WorldShopService:GetProductsAndWait(WorldShopProductType.Item, WorldShopProductStatus.Ing) while true do local pageDatas = pages:GetCurrentPageDatas() for _, product in ipairs(pageDatas) do
[source] | examples [title] | PixelRendererComponent [page] | apiReference/Components/PixelRendererComponent [code] | Property: [None] table<Vector2> Puzzles [None] PixelRendererComponent PixelRendererComp = nil [None] table<Vector> PuzzlePos Method: [client only] void OnBeginPlay () { self.PixelRendererComp = self.Entity.PixelRendererComponent self.PixelRendererComp:FillColor(Color.black) for i=1, 9 do lo
[source] | examples [title] | TweenLogic [page] | apiReference/Logics/TweenLogic [code] | Method: [server only] void OnBeginPlay () { _TweenLogic:MoveOffset(self.Entity, Vector2(6,0), 6, EaseType.QuartEaseIn) }