Game
Game
๊ฒ์ ์ ๋ฐ์ ์ธ ์ญํ ์ ํ๋ ๊ฐ์ฒด์์. ์ฌ๊ธฐ ์๋ ๊ธฐ๋ฅ๋ค์ ํด๋ผ์ด์ธํธ์์๋ง ์ฌ์ฉํ ์ ์์ด์.
์ด๋ฒคํธ
ReceiveGameStatisticsDataEvent
์๋ฒ๋ก ๋ถํฐ ๊ฒ์ ํต๊ณ ๋ฐ์ดํฐ ๋ฐ์์ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(keystring, offset, data ) keystring ์ ์ฅํ ๋์ keystring, offset ๋ number , data ๋ ํต๊ณ๋ฐ์ดํฐ ์ ๋๋ค.
EnterSelfCamera
Selfcamera Mode๊ฐ ์ด๋ฆด ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function( ) ์ ๋๋ค.
-- ์ํ --
local function EnterSelfCam()
local selfCamState = LocalPlayer:IsSelfCamera()
print(LocalPlayer:GetRemotePlayer().Name, " Self Camera State : ", selfCamState)
end
Game.EnterSelfCamera:Connect(EnterSelfCam) --Game์ ์
ํ์นด๋ฉ๋ผ ์ํ๊ฐ ๋๋ฉด ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
LeaveSelfCamera
Selfcamera Mode๊ฐ ๋ซํ ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function( ) ์ ๋๋ค.
-- ์ํ --
local function LeaveSelfCam()
local selfCamState = LocalPlayer:IsSelfCamera()
print(LocalPlayer:GetRemotePlayer().Name, " Self Camera State : ", selfCamState)
end
Game.LeaveSelfCamera:Connect(LeaveSelfCam) --Game์ ์
ํ์นด๋ฉ๋ผ ์ํ๊ฐ ํด์ ๋๋ฉด ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
OnLuckyDraw
๋ญํค๋๋ก์ฐ ์ ๋ณด ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(LuckyDrawInfo), LuckyDrawInfo ์ LuckyDrawInfo ๊ฐ์ฒด ์ ๋๋ค.
์์ฑ
MasterVolume
MasterVolume์ ์ค์ ํ ์ ์์ด์.
-- ์ํ --
local CurrentVolume = Game.MasterVolume
Game.MasterVolume = 0.1
MusicVolume
MusicVolume์ ์ค์ ํ ์ ์์ด์.
-- ์ํ --
local CurrentVolume = Game.MusicVolume
Game.MusicVolume = 0.1
EffectVolume
EffectVolume์ ์ค์ ํ ์ ์์ด์.
-- ์ํ --
local CurrentVolume = Game.EffectVolume
Game.EffectVolume = 0.1
EtcVolume
EtcVolume์ ์ค์ ํ ์ ์์ด์.
-- ์ํ --
local CurrentVolume = Game.EtcVolume
Game.EtcVolume = 0.1
TextChatVisible
TextChatVisible ์ฑํ ์ฐฝ์ ์ผ๊ณ ๋ ์ ์์ด์
-- ์ํ --
Game.TextChatVisible = false
ํจ์
RemotePlayer GetRemotePlayer(number PlayerID)
์์ด๋๋ก ํ๋ ์ด์ด๋ฅผ ์ป์ ์ ์์ด์. (์ฐพ๊ณ ์ถ์ ํ๋ ์ด์ด ์์ด๋)
-- ์ํ --
local player = Game:GetRemotePlayer(PlayerID) --ํ๋ ์ด์ด ์์ด๋์ ํด๋นํ๋ ํ๋ ์ด์ด๋ฅผ ๋ฐํํด์.
Character GetRemotePlayerCharacter(number PlayerID)
ํ๋ ์ด์ด ์์ด๋๋ก ํด๋น ํ๋ ์ด์ด์ ์บ๋ฆญํฐ๋ฅผ ์ป์ ์ ์์ด์. (์บ๋ฆญํฐ๋ฅผ ์ฐพ๊ณ ์ถ์ ํ๋ ์ด์ด ์์ด๋)
-- ์ํ --
local character = Game:GetRemotePlayerCharacter(PlayerID) --ํ๋ ์ด์ด ์์ด๋์ ํด๋นํ๋ ์บ๋ฆญํฐ๋ฅผ ๋ฐํํด์.
number GetPlayerCount()
ํ์ฌ ๊ฒ์์ ์ฐธ์ฌํ๊ณ ์๋ ํ๋ ์ด์ด์ ์๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
print(Game:GetPlayerCount())
PlayerList GetAllPlayer()
์๋์ ์ ์ํ ๋ชจ๋ ํ๋ ์ด์ด ์ป์ ์ ์์ด์.
-- ์ํ --
local allPlayerList = Game:GetAllPlayer() --๋ชจ๋ ํ๋ ์ด์ด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ฐํํด์.
for i = 1, #allPlayerList do
print(allPlayerList[i].Name)
end
void SendEventToServer(string EventName, Args ...)
์๋ฒ์ ์ปค์คํ ์ด๋ฒคํธ๋ฅผ ๋ณด๋ด๋ ํจ์์์. (์ด๋ฒคํธ ์ด๋ฆ, ์ ๋ฌํ๊ณ ์ถ์ ๋ณ์๋ค ...)
-- ์ํ --
--ํด๋ผ ์คํฌ๋ฆฝํธ์์
local cube = Workspace.Cube
wait(1)
cube:SendEventToServer("SomeFunc", 1) --์์ ํ๋ ์ด์ด์๊ฒ SomeFunc() ํจ์๋ฅผ ํธ์ถํด์.
-----------------------------------
--์๋ฒ ์คํฌ๋ฆฝํธ์์
local cube = Workspace.cube
--์๋ฒ์์ ์ด๋ฒคํธ ์์ฑ์ ์ฒซ ์ธ์๋ก player๊ฐ ๋ค์ด๊ฐ์.
--ํ์ํ๋ค๋ฉด ํจ์์ ์ธ์๋ ๋ฃ์ ์ ์์ด์. ๋จ, ์ซ์๋ ๋ฌธ์์ด ์ธ์๋ง ๋ฃ์ ์ ์์ด์.
local function SomeFunc(player, id)
print("Call SomeFunc from " .. player.Name .. " (" .. id .. ")")
end
cube:ConnectEventFunction("SomeFunc", SomeFunc) --์ค๋ธ์ ํธ์ "SomeFunc"๋ผ๋ ์ด๋ฒคํธ ์ด๋ฆ์ผ๋ก SomeFunc ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
--์ค๋ธ์ ํธ๊ฐ ์๋ Game์๋ ์ฐ๊ฒฐํ ์ ์์ด์.
--๊ฐ์ ๋์์ ๋ฑ๋ก๋ ์ด๋ฒคํธ๋ง ํธ์ถํ ์ ์์ด์.
AnimStateMachineSetting AddAnimStateMachineSetting(string StateMachineName)
์บ๋ฆญํฐ์ ์ฌ์ฉ๋ ์ ๋๋ฉ์ด์ ์ํ๋จธ์ ์ค์ ์ ์ถ๊ฐํ ์ ์์ด์. (์ค์ ํ ์ํ๋จธ์ ์ด๋ฆ)
-- ์ํ --
--์บ๋ฆญํฐ์ ์ฌ์ฉ๋ ์ ๋๋ฉ์ด์
์ํ๋จธ์ ์ค์ ์ ์ถ๊ฐํด์.
local AnimStateMachineSetting = Game:AddAnimStateMachineSetting("DefaultCharacterAnim")
AnimStateMachineSetting GetAnimStateMachineSetting(string StateMachineName)
์ค์ ๋ ์ ๋๋ฉ์ด์ ์ํ๋จธ์ ์ ์ป์ ์ ์์ด์. (์ป๊ณ ์ถ์ ์ํ๋จธ์ ์ด๋ฆ)
-- ์ํ --
wait(1)
local AnimStateMachineSetting = Game:GetAnimStateMachineSetting("DefaultCharacterAnim")
print(AnimStateMachineSetting)
void SetCharacterAnimStateMachine(CharacterSetting CharacterSetting, AnimStateMachineSetting AnimSetting)
ํด๋น ์บ๋ฆญํฐ ์ค์ ์ผ๋ก ์์ฑ๋๋ ์บ๋ฆญํฐ์ ์ ๋๋ฉ์ด์ ์ํ ๋จธ์ ์ ์ค์ ํ ์ ์์ด์. (๋์ ์บ๋ฆญํฐ ์ค์ , ์ฌ์ฉ ํ ์ ๋๋ฉ์ด์ ์ํ ์ค์ )
-- ์ํ --
Game:SetCharacterAnimStateMachine(AnimationSetting, AnimStateMachineSetting) --์ ๋๋ฉ์ด์
์ํ๋จธ์ ์ ์ฌ์ฉ ํ ์บ๋ฆญํฐ(Object)๋ฅผ ์ค์ ํด์.
void SetNPCAnimStateMachine(string NPCSettingName, string AnimStateMachineSettingName1)
ํด๋น NPC์ ์ ๋๋ฉ์ด์ ์ํ ๋จธ์ ์ฌ์ฉํ๊ฒ ํ ์ ์์ด์. (์ค์ ํ NPC ์ด๋ฆ, ์ ๋๋ฉ์ด์ ์ํ ๋จธ์ ์ด๋ฆ)
void ChangeCharacterAnimStateMachine(Character Character, AnimStateMachineSetting AnimSetting, AnimationSetting AnimationSetting)
ํด๋น ์บ๋ฆญํฐ์ ์ ๋๋ฉ์ด์ ์ํ ๋จธ์ ์ ์ฃผ์ด์ง ์ํ ๋จธ์ ๊ณผ ์บ๋ฆญํฐ ์ธํ ์ ์ ๋๋ฉ์ด์ ์ผ๋ก ๊ต์ฒดํด์. (๋ณ๊ฒฝํ ์บ๋ฆญํฐ, ์ ์ฉํ ์ํ ๋จธ์ , ์ ์ฉํ ์ ๋๋ฉ์ด์ ์ธํ )
-- ์ํ --
local FPSCharacter = Toybox.FPSCharacterSetting
local AniStateMachine = Game:GetAnimStateMachineSetting("FPSCharacterAnim") --FPSCharacter์ DefaultCharacterAnimSetting์์ ์ค์ ํ ์ ๋๋ฉ์ด์
์ํ๋จธ์ ์ ์ด๋ฆ์ด์ด์ผ ํด์
--ํด๋น ์บ๋ฆญํฐ์ ์ ๋๋ฉ์ด์
์ํ ๋จธ์ ์ ๊ต์ฒดํด์. (๋ณ๊ฒฝํ ์บ๋ฆญํฐ, ์ ์ฉํ ์ํ ๋จธ์ , ์ ์ฉํ ์ ๋๋ฉ์ด์
์ธํ
)
Game:ChangeCharacterAnimStateMachine(character, AniStateMachine, FPSCharacter.AnimationSetting)
void ResetRespawnCharacterAnimStateMachine(Character Character, bool IsReset)
ํด๋น ์บ๋ฆญํฐ์ ๋ณ๊ฒฝ๋ ์ํ ๋จธ์ ์ ๋ฆฌ์คํฐ ์ ์ด๊ธฐํ ์ํฌ์ง ๊ฒฐ์ ํด์.
-- ์ํ --
--ํด๋น ์บ๋ฆญํฐ์ ๋ณ๊ฒฝ๋ ์ํ ๋จธ์ ์ ๋ฆฌ์คํฐ ์ ์ด๊ธฐํ ์ํฌ์ง ๊ฒฐ์ ํด์.
--๋๋ฒ์งธ ๊ฐ์ด false์ด๋ฉด, ํด๋น ์บ๋ฆญํฐ๋ ๋ฆฌ์คํฐ์์๋ ๊ธฐ๋ณธ ์ ๋๋ก ์ด๊ธฐํ๋์ง ์์์.
Game:ResetRespawnCharacterAnimStateMachine(character, false)
FX CreateFX(ObjectFX FXObject, Vetor Location)
FX๋ฅผ ์์ฑํ ์ ์์ด์. (์์ฑ ํ FX ์ค๋ธ์ ํธ, ์์ฑํ ์์น)
-- ์ํ --
local spawnPos = Workspace.Cube.Transform.Location
Game:CreateFX(Workspace.Effect, spawnPos) --์ดํํธ๋ฅผ ์ง์ ์์น์ ์์ฑํด์.
void DeleteFX(FX FXObject)
FX๋ฅผ ์ ๊ฑฐ์์ผ์. (์ ๊ฑฐํ FX ์ค๋ธ์ ํธ)
-- ์ํ --
Game:DeleteFX(Workspace.Effect)
ObjectSound PlaySound(ObjectSound SoundObject, Vetor Location)
์ฌ์ด๋๋ฅผ ํ๋ ์ดํด์. (ํ๋ ์ด ํ Sound ์ค๋ธ์ ํธ, ํ๋ ์ด ํ ์์น Vector)
-- ์ํ --
Game:PlaySound(Workspace.Sound, Vector.new(0, 0, 0))
void StopSound(ObjectSound SoundObject)
ํ๋ ์ด ์ค์ธ ์ฌ์ด๋๋ฅผ ์ ์ง์์ผ์. (์ ์งํ Sound)
-- ์ํ --
Game:StopSound(Workspace.Sound)
ObjectSound CreateObject(Object SourceObject, Vector Location)
์ง์ ๋ ์์น์ ์ค๋ธ์ ํธ๋ฅผ ์์ฑ ์์ผ์. (์์ฑ ํ Object, ์์ฑ ํ ์์น Vector)
-- ์ํ --
local cube = Workspace.Cube
local createPos = Vector.new(0, 0, 0)
local temp = Game:CreateObject(cube, createPos) --์ค๋ธ์ ํธ๋ฅผ ์ง์ ๋ ์์น์ ์์ฑํด์. (์์ฑํ ํด๋ผ์ด์ธํธ์์๋ง ๋ณด์ฌ์.)
print(temp.Name) --CreateObject๋ก ์์ฑํ ์ค๋ธ์ ํธ๋ฅผ ๋ณ์์ ๋ด์ ๋ค ํ์ฒ๋ฆฌํ ์ ์์ด์.
UIScene CreateUIScene(UIScene SourceUIScene)
(deprecate) CreateUIWidget ํจ์๋ฅผ ์ด์ฉํ์ธ์.
UIScene CreateUIScene(string UISceneName, UIScene SourceUIScene)
(deprecate) CreateUIWidget ํจ์๋ฅผ ์ด์ฉํ์ธ์.
-- ์ํ --
local uiScene = Game:CreateUIScene(Workspace.ScreenUI) --๋์ UI๋ฅผ ๋ณต์ ํด์.
print(uiScene.Name)
local uiScene = Game:CreateUIScene("NewScreenUI", Workspace.ScreenUI) --์๋ก์ด ์ด๋ฆ์ผ๋ก ๋์ UI๋ฅผ ๋ณต์ ํด์.
print(uiScene.Name)
UIWidget CreateUIWidget(UIWidget SourceUIWidget)
SourceUIWidgetObject์ ๊ฐ์ UIWidget์ ์์ฑํ๋ค. ์์๊ด๊ณ์ Widget๊น์ง ๋๊ฐ์ด ๋ง๋ญ๋๋ค. (์์ฑํ ์ต์์ ์์ ฏ์ ์ด๋ฆ, ์์ฑ ํ ์๋ณธ ์์ ฏ)
-- ์ํ --
local WidgetImage1 = Game:CreateUIWidget(Workspace.ScreenUI.Image) --๋์ UI Widget๋ฅผ ๋๊ฐ์ด ๋ง๋ค์ด์.
local WidgetImage2 = Game:CreateUIWidget("NewUIWidget", Workspace.ScreenUI.Image) --๋์ UI Widget๋ฅผ ๋๊ฐ์ด ๋ง๋ค์ด์.
Vector GetMouseHitLocation()
์์ ์ ๋ง์ฐ์ค 2D ์์น์์ ์๋์ ์ถฉ๋๋ 3D์์น ์ขํ๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
MouseInput = Input:AddGroup("MouseInput")
MouseInput:AddActionKeyEvent("ClickKey", Enum.Key.LeftMouseButton)
Input:ActiveGroup("MouseInput")
MouseInput:ProcessInputActionEvent("ClickKey", Enum.KeyInputType.Released, function()
local pos = Game:GetMouseHitLocation() --๋ง์ฐ์ค๋ฅผ ํด๋ฆญํ ์์น๋ฅผ Vector๋ก ๋ฐํํด์.
print("Click Position : " .. pos)
end
HitObject GetMouseHitObject()
์์ ์ ๋ง์ฐ์ค 2D ์์น์์ ์๋์ ์ถฉ๋๋ Object๋ฅผ ์ป์ด ์ฌ ์ ์์ด์.
-- ์ํ --
while true do
local hitObj = Game:GetMouseHitObject() --๋ง์ฐ์ค ์ปค์ ์์น์ ํด๋นํ๋ ์ค๋ธ์ ํธ๋ฅผ ๋ฐํํด์.
if hitObj ~= nil then
print(hitObj.Name)
else
print("nil")
end
wait(0.5)
end
void OnChatNormalMessage(number TargetID, string Message, ChatVisibleType ChatVisibleType)
๋ด ์ฑํ ์ฐฝ์ ์ผ๋ฐ ๋ฉ์์ง ์ถ๊ฐ. (์ฐ์ถ์ฉ)
-- ์ํ --
local PlayerID = character:GetPlayerID()
wait(2)
Game:OnChatNormalMessage(PlayerID, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowChatOnly) --์ฑํ
์ฐฝ์๋ง ํ์ํด์
wait(2)
Game:OnChatNormalMessage(PlayerID, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowBalloonOnly) --๋งํ์ ์ผ๋ก๋ง ํ์ํด์
wait(2)
Game:OnChatNormalMessage(PlayerID, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowBoth) --์ฑํ
์ฐฝ๊ณผ ๋งํ์ ์ผ๋ก ํ์ํด์
void OnChatSystemMessage(number PlayerID, string Message)
๋ด ์ฑํ ์ฐฝ์ ์์คํ ๋ฉ์์ง ์ถ๊ฐ.
-- ์ํ --
wait(2)
Game:OnChatSystemMessage(playerID, "์ถ๋ ฅ ๋ด์ฉ") --์ฑํ
์ฐฝ์๋ง ํ์ํด์
void OnChatSystemMessage(string Name, string Message)
๋ด ์ฑํ ์ฐฝ์ ์์คํ ๋ฉ์์ง ์ถ๊ฐ.
-- ์ํ --
wait(2)
Game:OnChatSystemMessage("์ด์์", "์ถ๋ ฅ ๋ด์ฉ") --์ฑํ
์ฐฝ์๋ง ํ์ํด์
void OnChatNPCMessage(ObjectNPC NPC, string Message, ChatVisibleType ChatVisibleType)
๋ด ์ฑํ ์ฐฝ์ NPC ๋ฉ์์ง ์ถ๊ฐ.
-- ์ํ --
local npc = Script.Parent
wait(2)
Game:OnChatNPCMessage(npc, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowChatOnly) --์ฑํ
์ฐฝ์๋ง ํ์ํด์
wait(2)
Game:OnChatNPCMessage(npc, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowBalloonOnly) --๋งํ์ ์ผ๋ก๋ง ํ์ํด์
wait(2)
Game:OnChatNPCMessage(npc, "์ถ๋ ฅ ๋ด์ฉ", Enum.ChatVisibleType.ShowBoth) --์ฑํ
์ฐฝ๊ณผ ๋งํ์ ์ผ๋ก ํ์ํด์
FiniteStateMachine AddFSM(string StateMachineName)
์ค๋ธ์ ํธ๋ NPC์ ์ฌ์ฉ๋ FSM์ ์ถ๊ฐํ ์ ์์ด์. (์ํ๋จธ์ ์ด๋ฆ)
-- ์ํ --
local FSM = Game:AddFSM("FSM")
FiniteStateMachine GetOrCreateFSM(string StateMachineName, number key)
์ด๋ฏธ ์กด์ฌํ๋ FSM์ ๊ฐ์ ธ์ฌ ์ ์์ด์.(์์ผ๋ฉด ๋ง๋ญ๋๋ค.) (์ํ๋จธ์ ์ด๋ฆ, FSM ํ ๋น๋ Object Key)
-- ์ํ --
local NPC = Script.Parent
local FSM = Game:GetOrCreateFSM("FSM", NPC:GetKey()) --Server์ ์๋ FSM๋ฅผ ๊ฐ์ ธ์์.
Enum GetPlayerDevice()
ํ์ฌ ์ ์ํ ๊ธฐ๊ธฐ์ Type์ ๋ฐํ
-- ์ํ --
local PlayerDevice = Game:GetPlayerDevice()
if PlayerDevice == Enum.PlayerDevice.PC then
print("Desktop")
elseif PlayerDevice == Enum.PlayerDevice.Android then
print("Android")
elseif PlayerDevice == Enum.PlayerDevice.iOS then
print("iOS")
end
Vector2D GetScreenResolution()
ํ๋ฉด์ ํด์๋๋ฅผ ์ป๋๋ค.
-- ์ํ --
local function FuncViewportResized(width, hight)
print("Viewport Size๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค.")
end
Game.OnViewportResizedEvent:Connect(FuncViewportResized) --Game์ Viewport Size๊ฐ ๋ณ๊ฒฝ๋๋ฉด ํธ์ถ๋๋ ํจ์๋ฅผ ์ฐ๊ฒฐํด์.
WidgetList FindWidgets(Object RootObject, WidgetType Type)
RootObject ํ์์ ์ค๋ธ์ ํธ๋ค ์ค WidgetType ์ ํด๋นํ๋ ์์ ฏ ๋ฆฌ์คํธ๋ฅผ ์ป์ ์ ์์ด์.
-- ์ํ --
local widgetList = Game:FindWidgets(Workspace, Enum.UIWidgetType.Text)
for i = 1, #widgetList do --๋ฆฌ์คํธ์์ #์ ๋ถ์ฌ ๋ฆฌ์คํธ์ ๊ธธ์ด๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด์.
print(widgetList[i].Name)
end
์ฌ์ฉ ๊ฐ๋ฅํ ๋ถ๋ชจ ์ค๋ธ์ ํธ ๊ธฐ๋ฅ๋ค
์์ฑ
์ด๋ฆ
์ค๋ช
์ด๋ฒคํธ
์ด๋ฆ
์ค๋ช
๋งค ํ๋ ์๋ง๋ค ํธ์ถ๋๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(updateTime), updateTime ์ number ์ ๋๋ค.
ํ๋ ์ด์ด๊ฐ ๊ฒ์์ ์ ์ฅ ์ ํธ์ถ๋๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(enterPlayer), enterPlayer ์ Player ๊ฐ์ฒด ์ ๋๋ค.
ํ๋ ์ด์ด๊ฐ ๊ฒ์์์ ๋๊ฐ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(leavePlayer), leavePlayer ์ Player ๊ฐ์ฒด ์ ๋๋ค.
์บ๋ฆญํฐ๊ฐ ์ฃฝ์ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(deathCharacter), deathCharacter ๋ Character ๊ฐ์ฒด ์ ๋๋ค.
์บ๋ฆญํฐ๊ฐ ์คํฐ ๋ ๋ ํธ์ถ๋๋ ์ด๋ฒคํธ์์. ์ฐ๊ฒฐํจ์ ํ์์ function(spawnCharacter), spawnCharacter ๋ Character ๊ฐ์ฒด ์ ๋๋ค.
ํจ์
์ด๋ฆ
์ค๋ช
๊ฒ์์ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ ์ ์์ด์. (์ถ๊ฐํ ๋จ๊ณ ์ด๋ฆ)
๋จ๊ณ ์ด๋ฆ์ผ๋ก ๋จ๊ณ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์์ด์. (๋ถ๋ฌ์ฌ ๋จ๊ณ ์ด๋ฆ)
ํ์ฌ ๋จ๊ณ๋ฅผ ์ป์ ์ ์์ด์.
๋จ๊ณ ์ด๋ฆ์ ํตํด ํด๋น ๋จ๊ณ๋ก ๋ณ๊ฒฝํ ์ ์์ด์. (๋ณ๊ฒฝํ ๋จ๊ณ ์ด๋ฆ)
๋ค์ ๋จ๊ณ๋ก ๋ณ๊ฒฝํ ์ ์์ด์.
์ ์ ๊ฐ ์ถ๊ฐํ ์ด๋ฒคํธ์ ํจ์๋ฅผ ์ฐ๊ฒฐํ ์ ์์ด์. (์ด๋ฒคํธ ์ด๋ฆ, ์ฐ๊ฒฐ ํจ์)
์ค๋ธ์ ํธ๋ฅผ ์ญ์ ํ ์ ์์ด์. (์ญ์ ํ ์ค๋ธ์ ํธ) ์๋ฒ์์ ์ฌ์ฉํ๋ฉด ์๋ฒ์ ํด๋ผ ์ค๋ธ์ ํธ ๋ชจ๋ ์ญ์ ๋๊ณ ํด๋ผ์์ ์ฌ์ฉํ๋ฉด ํด๋ผ ์ค๋ธ์ ํธ๋ง ์ญ์ ํด์
์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ์ ์ถฉ๋ ๋ฆฌ์คํธ๋ค์ ๊ฐ์ ธ์ฌ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ)
์ค์ ๋ ์์ ์ง์ ์์ ์ํ๋ ๋ฐฉํฅ์ผ๋ก ์ง์ ๋ ๊ฑฐ๋ฆฌ ๋งํผ์ ์ ์ ๊ฐ ์ถ๊ฐํ ์ถฉ๋ ํ์ ๊ณผ์ ์ถฉ๋ ๋ฆฌ์คํธ๋ค์ ๊ฐ์ ธ์ฌ ์ ์์ด์. (์์ ์ง์ Vector, ๋ฐฉํฅ Vector, ๊ฑฐ๋ฆฌ ๊ฐ, ์ํ๋ ์ ์ ์ถฉ๋ ํ์ ์ด๋ฆ)
๋ฐํ๊ฐ์ด false์ด๋ฉด ์คํ๋์ค(์คํ๋์ค๋ก ์ ์), true์ด๋ฉด ํผ๋ธ๋ฆฌ์ฌ๋ ์ํ(ํ๋ ์ด์ด๋ก ์ ์)
๋ก๊ทธ ์ฑํ ์ฐฝ ์ถ๋ ฅ ๊ธฐ๋ฅ ํ์ฑ, ๋นํ์ฑ ์ค์ (true๋ก ์ค์ ์ ์คํฌ๋ฆฝํธ print ๊ฐ ์ฑํ ์ฐฝ์๋ ํ์๋จ)
RootObject ํ์์ ์ค๋ธ์ ํธ๋ค ์ค ObjectName ์ ํด๋นํ๋ ์ค๋ธ์ ํธ ๋ฆฌ์คํธ๋ฅผ ์ป์ ์ ์์ด์.
RootObject ํ์์ ์ค๋ธ์ ํธ๋ค ์ค ObjectType ์ ํด๋นํ๋ ์ค๋ธ์ ํธ ๋ฆฌ์คํธ๋ฅผ ์ป์ ์ ์์ด์.
Last updated
Was this helpful?