Building blocks - kuimoani/defold GitHub Wiki
μ΄ λ¬Έμμμλ κ²μμ€λΈμ νΈ, μ»΄ν¬λνΈ, 컬λ μ μ΄ μ΄λ»κ² λμνλμ§ μμΈν μ€λͺ ν©λλ€.
Defoldμμ λ§λ κ² μ€ μΌλΆλ λ€λ₯Έ μννΈμ¨μ΄μλ λ€λ₯΄κ² μ€κ³λμ΄ μμ΅λλ€. μ΄ λΈλ‘λ€μ μ ν©μΉλ©° μ΄λ»κ² ν©μΉλμ§μ λν μ΄ν΄κ° μ‘°κΈ μ΄λ €μΈ μλ μμ΅λλ€. Defoldκ° μ΄λ»κ² κ²μ 리μμ€λ₯Ό κ΄λ¦¬νκ³ μ κ·Όνλμ§ μ΄ν΄νκΈ° μν΄μλ, μ΄ λ¬Έμμ Message passing λ¬Έμλ₯Ό μ°Έκ³ λ°λλλ€. μ¬κΈ°μ μλ κ²λ€ μ€ μΌλΆ νΉμ λλΆλΆμ μμνκ³ μ²μμλ μ΄ν΄νκΈ° νλ€κ² μ§λ§, κ±±μ λ§μΈμ. μκ°μ λ΄μ μλν°μ κ²μμμ§μ λ€λ€λ³΄κ³ μ€νμ λ¬Έμ κ° μκΈ°λ©΄ λ¬Έμλ€μ λλ¬ λ³΄μκΈ° λ°λλλ€.
κ²μ μ€λΈμ νΈλ κ²μμ΄ μ€νλλ λμμ κ°κ°μ μλͺ μ κ°μ§λ κ°λ¨ν κ°μ²΄μ λλ€. μΌλ°μ μΌλ‘ κ²μ μ€λΈμ νΈλ λΉμ£ΌμΌμ΄λ μ€λμ€λ₯Ό λνλ΄λ μμλ€(μλ₯Ό λ€μ΄ μ€νλΌμ΄νΈ μ»΄ν¬λνΈλ μ¬μ΄λ μ»΄ν¬λνΈ)μ μ₯μ°©νμ¬ μ¬μ©λ©λλ€. λν μ€ν¬λ¦½νΈ μ»΄ν¬λνΈλ₯Ό μ₯μ°©ν΄μ νΉμ ν λμμ ꡬνν μλ μμ΅λλ€. λ°λΌμ κ²μ μ€λΈμ νΈλ μ΄λ° λ€μν μ»΄ν¬λνΈλ€μ μν 컨ν μ΄λλΌλ μ μμ μ€νλΌμ΄νΈ, λͺ¨λΈ, μ¬μ΄λμλ ꡬλΆλ©λλ€. λΉμ μ κ²μ μ€λΈμ νΈλ₯Ό μμ±νμ¬ μλν°μμ 컬λ μ μ λ°°μΉμν¬ μ μμΌλ©° νΉμ ν©ν 리λ₯Ό μ¬μ©νμ¬ λ°νμμ λμ μΌλ‘ μ€ν°λκ² ν μλ μμ΅λλ€.
μ¬κΈ° μλν°μμ κ²μ μ€λΈμ νΈλ₯Ό μμ±νλ λ κ°μ§ λ°©λ²μ΄ μμ΅λλ€:
- κ²μμ€λΈμ νΈ νμΌμ λ§λ ν 컬λ μ μ μ΄ νμΌμ μΈμ€ν΄μ€λ₯Ό λ§λ€κΈ°
- κ²μμ€λΈμ νΈμ μΈμ€ν΄μ€λ₯Ό 컬λ μ μ λ°°μΉνμ¬ λ§λ€κΈ°
μ΄λ€ λ°©μμ μ°¨μ΄μ μ μ΄ν΄ 보λλ‘ ν©μλ€.
κ²μ μ€λΈμ νΈ νμΌμ μμ±ν΄μ κ²μ μ€λΈμ νΈλ₯Ό μν μ€κ³λ(blueprint)λ νλ‘ν νμ (prototype)μ λ§λλλ€. λμ€μ μ΄ νλ‘ν νμ μΌλ‘ νλ νΉμ λ€μμ κ²μμ€λΈμ νΈ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μμ΅λλ€.
κ²μ μ€λΈμ νΈ νμΌμ λ§λ€μ΄λ κ²μ μ€νμμλ μ무κ²λ μΆκ°λλ κ²μ΄ μμ΅λλ€. μ΄ κ²μ μ€λΈμ νΈλ μμ§ μ‘΄μ¬νμ§ μμΌλ©°, μ€μ μ€λΈμ νΈλ₯Ό λ§λ€ μ μλ 곡μλ§ μ‘΄μ¬ν λΏμ λλ€. 미리 λ§λ€μ΄ λμ μ€κ³λλ₯Ό κΈ°λ°μΌλ‘ μ€μ κ²μ μ€λΈμ νΈλ₯Ό λ§λ€κΈ° μν΄μλ, 컬λ μ μ μ€λ₯Έμͺ½ ν΄λ¦νκ³ Add Game Object Fileμ μ νν΄μ νλ‘μ νΈμ 컬λ μ μ κ²μμ€λΈμ νΈμ μΈμ€ν΄μ€λ₯Ό μΆκ°νλ©΄ λ©λλ€.
μ΄μ κ²μ μ€λΈμ νΈλ μλμ μμν μ μμ΅λλ€. λΉμ μ λ§μ μμ μΈμ€ν΄μ€λ₯Ό λ§λ€ μλ μλλ°, κ°κ°μ μΈμ€ν΄μ€λ μκΉ κ²μ μ€λΈμ νΈ νμΌμ μ μ₯λ κ²κ³Ό λκ°μ 볡μ λ³Έμ λλ€.
μ΄λ¬ν λ°©μμ μ’μ μ μ κ²μ μ€λΈμ νΈ νμΌμ λ³κ²½νμ¬ νλ‘ν νμ μ λ°κΎΈλ κ²½μ°, μ΄ νμΌμ κΈ°λ°μΌλ‘ μμ±λ μΈμ€ν΄μ€λ€λ μ¦μ λ³κ²½λλ€λ κ²μ λλ€.
μ΄μ λ μ²μμΌλ‘ νΉμ΄νκ² λ³΄μ΄λ μ¬λ‘λ₯Ό μ΄ν΄ 보λλ‘ ν©μλ€. μμ νλ‘ν νμ νμΌμ "my_gameobject" μΈμ€ν΄μ€λ₯Ό 컬λ μ μ μΆκ°νκ³ , "heart"λΌλ μ΄λ¦μ κ²μ μ€λΈμ νΈλ₯Ό λͺλͺ μ»΄ν¬λνΈλ€κ³Ό ν¨κ» μμ±ν΄ λ΄ μλ€. (컬λ μ μ μ€λ₯Έμͺ½ν΄λ¦ ν Add Game Object μ ν) λ§μ§λ§μΌλ‘, "heart" μ€λΈμ νΈλ₯Ό "my_gameobject"λ‘ λλκ·Έν΄μ μμ μ€λΈμ νΈλ‘ λ§λλλ€. μ΄μ 컬λ μ μ΄ λ€μκ³Ό κ°μ΄ μμ λμμ΅λλ€:
"heart" μ€λΈμ νΈλ₯Ό "my_gameobject"λ‘ λλκ·Ένλ κ²μΌλ‘ μΈν΄ "my_gameobject.go"νμΌμ΄ λ°λλ κ²μ΄ μλμ§ μκ°ν μλ μμ§λ§, κ·Έλ° μΌμ λ°μνμ§ μμ΅λλ€. μ΄ μμ μ μν₯μ μ€μ§ "my_gameobject"λΌλ κ²μ μ€λΈμ νΈ μΈμ€ν΄μ€κ° μμ μ€λΈμ νΈλ₯Ό κ°μ§λ κ² λΏμ λλ€. μ΄ κ²μ μ€λΈμ νΈ μΈμ€ν΄μ€λ νλ‘ν νμ κ³Ό μμμ€λΈμ νΈμ κ΄ν λ κ°μ§ λ€λ₯Έ μμ±μ κ°μ§λλ€. κ²μ μ€λΈμ νΈ μΈμ€ν΄μ€μ μμ μ€λΈμ νΈλ€μ μΆκ°νλ©΄ νλ‘ν νμ μ 건λλ¦¬μ§ μμ μ±λ‘ ν΄λΉ μ€λΈμ νΈμ μμ μμ±(children property) μ΄ μΆκ°λ©λλ€.
컬λ μ νμΌμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ₯΄κ³ Open With > Text Editorλ₯Ό μ νν΄μ ν μ€νΈ μλν°λ‘ 컬λ μ μ μ΄μ΄ 보면 κ²μ μ€λΈμ νΈ λ°μ΄ν° ꡬ쑰λ₯Ό νμ ν μ μμ΅λλ€:
name: "default"
instances {
id: "my_gameobject"
prototype: "/a_simple_test/my_gameobject.go"
children: "heart"
...
}
scale_along_z: 0
embedded_instances {
id: "heart"
data: "embedded_components {\n id: \"sprite\"\n type: \"sprite\"\n data: \"tile_set: \\\"/cards_example/cards_sprites.atlas\\\"\\ndefault_animation: \\\"heart\\\"\\nmaterial: \\\"/builtins/materials/sprite.material\\\"\\nblend_mode: BLEND_MODE_ALPHA\\n\"\n position {\n x: 0.0\n y: 0.0\n z: 0.0\n }\n rotation {\n x: 0.0\n y: 0.0\n z: 0.0\n w: 1.0\n }\n}\n"
...
}μ΄μ²λΌ κ²μ μ€λΈμ νΈ μΈμ€ν΄μ€κ° prototype μμ±μ κ°μ§κ³ μλ κ²μ μ νμΌμμ λͺ νν λ³Ό μ μμ΅λλ€. λ λ€λ₯Έ μμ±μΈ childrenμ "heart"λΌλ μ΄λ¦μ μμ μΈμ€ν΄μ€λ₯Ό κ°μ§κ³ μλλ°, "heart"λ λ€λ₯Έ κ²μμ€λΈμ νΈμ λ¬λ¦¬ νλ‘ν νμ κΈ°λ°μ΄ μλκ³ λ΄λΆμ μμΉλ κ²μ μ€λΈμ νΈ(in-place game object)μ΄λ―λ‘ embedded_instances μλμ λμ΄λλ©° μ΄ λ°μ΄ν°λ νμ¬μ 컬λ μ νμΌμλ§ μ μ₯λ©λλ€.
μ΄ μλν°μμ μμ ν λ κ²μ μ€λΈμ νΈ νλ‘ν νμ κ³Ό μΈμ€ν΄μ€λ₯Ό λͺ ννκ² κ΅¬λΆνλ κ² μΈμλ, λ°νμμ κ³ μ λ μμ΄λλ‘ μ΄λ»κ² κ²μ μ€λΈμ νΈλ₯Ό μλ³νλμ§μ μμμ€λΈμ νΈλ₯Ό μ€μ νλ κ²μ΄ μμ΄λμ μ΄λ»κ² μν₯μ λΌμΉλμ§ μκ°μ λ€μ¬ μ μ€ν 곡λΆνλ κ²μ΄ μ’μ΅λλ€. Message passing λ¬Έμμ μμΈν μ€λͺ μ΄ μμ΅λλ€.
μ§κΈμ―€ λΉμ μ μλ§ "κ²μ μ€λΈμ νΈ νμΌμ λ§λ€μ΄ κ²μ μ€λΈμ νΈμ μμ μ€λΈμ νΈλ₯Ό μμ±ν λ€μ 컬λ μ μ μ΄ μ€λΈμ νΈλ₯Ό μΈμ€ν΄μ€ν μν¨ ν μμ μ€λΈμ νΈλ₯Ό μμ νλ©΄ μ΄λ»κ² λ κΉ?"λΌλ μλ¬Έμ νμ μλ μμ΅λλ€. κ°λ¨ν λ΅λ³νμλ©΄ μ΄κ²μ λΆκ°λ₯ν©λλ€. κ²μ μ€λΈμ νΈ νμΌμ λ¨μΌ κ²μ μ€λΈμ νΈμ μ€κ³λλ©΄μ λλ€. μ€μ§ λΉλμμ μλν°μμ 컬λ μ μ μμ νκ±°λ λ°νμμμ msg.post("my_object", "set_parent", { parent_id = go.get_id("my_parent") }) λ₯Ό μ¬μ©νμ¬ κ²μ μ€λΈμ νΈμ μΈμ€ν΄μ€μ μμ μ€λΈμ νΈλ€μ μΆκ°νλ κ²λ§ κ°λ₯ν©λλ€.
μ»΄ν¬λνΈλ νΉμ ν ννμ΄λ κΈ°λ₯μ κ²μ μ€λΈμ νΈμ λΆμ¬νλλ° μ¬μ©λ©λλ€. μ΄κ²λ€μ κ²μ μ€λΈμ νΈ μμ ν¬ν¨λμ΄μΌλ§ νλ©° μ€μ€λ‘ μ΄μκ°μ§ λͺ»ν©λλ€. μ¬κΈ°μ μλν°μμ μ μ»΄ν¬λνΈλ₯Ό μμ±νλ λκ°μ§ λ°©λ²μ΄ μμ΅λλ€:
- μ»΄ν¬λνΈ νμΌμ μμ±ν ν μ»΄ν¬λνΈμ μΈμ€ν΄μ€λ₯Ό κ²μ μ€λΈμ νΈ μμ λ§λλ λ°©λ²
- κ²μ μ€λΈμ νΈ μμ λ΄μ₯(in-place) μ»΄ν¬λνΈ μΈμ€ν΄μ€λ₯Ό λ§λλ λ°©λ²
μ λ κ°μ§ μΌμ΄μ€λ‘ νΉμ μ νμ μ»΄ν¬λνΈλ₯Ό μμ±ν΄μ μλν°μμ μ΄ μ»΄ν¬λνΈλ₯Ό μ΄λ©΄ μ»΄ν¬λνΈμ μ’ λ₯μ λ§λ μ ν©ν μλν°λ₯Ό λμμ μ»΄ν¬λνΈλ₯Ό λ€λ£° μ μκ² ν΄ μ€λλ€.
μ°λ¦¬λ μ΄μ μΉμ μμ embedded_components μμ±μ ν΅ν΄μ μλν°κ° λ΄μ₯ μ»΄ν¬λνΈλ₯Ό κ²μ μ€λΈμ νΈμ μ΄λ»κ² μ μ₯νλμ§ μ΄ν΄λ³΄μμ΅λλ€. μ΄μλ μ‘°κΈ λ€λ₯΄μ§λ§ νμΌμ μ°Έμ‘°(reference)λ‘λΆν° μ»΄ν¬λνΈλ₯Ό μΈμ€ν΄μ€ν νλ©΄ μλ μ²λΌ λνλ©λλ€:
embedded_instances {
id: "heart2"
data: "components {\n id: \"sprite\"\n component: \"/a_simple_test/my_heart.sprite\"\n position {\n x: 0.0\n y: 0.0\n z: 0.0\n }\n rotation {\n x: 0.0\n y: 0.0\n z: 0.0\n w: 1.0\n }\n}\n"
...
}μ»΄ν¬λνΈμ νΉμ ν λ°μ΄ν°λ component μμ±κ°μ ν΅ν΄ μ»΄ν¬λνΈ νμΌμ μ°Έμ‘°νμ¬ μ μ₯λ©λλ€.
μλ§λ κ°μ₯ μμ£Ό μ°μ΄λ μ»΄ν¬λνΈ νμ μ λμ(behaviors)μ ꡬννλλ° μ°μ΄λ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈ μΌ κ²μ λλ€. μ¬κΈ°μ μκΈ° μ¬μ΄κ²μ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈμ μ΄λ₯Ό ν¬ν¨νλ κ²μμ€λΈμ νΈκ°μ λͺ νν κ²½κ³κ° μλ€λ μ¬μ€μ λλ€. μλ₯Ό λ€μ΄, μλλ μΌλ°μ μΈ μ€νμΌμ λ©μΈμ§ μ λ¬ λ°©λ²μ λλ€:
msg.post("my_object", "my_message", { my_data = 1 }})μ¬κΈ°μ μ΄ μ»€μ€ν λ©μΈμ§λ "my_object"λΌλ κ²μ μ€λΈμ νΈλ‘ μ μ‘λ©λλ€. μ΄κ²μ μΌλ°μ μΌλ‘ μ λμνμ§λ§ κΆμ₯νλ λ°©μμ μλλλ€. 첫째, κ²μ μ€λΈμ νΈλ‘ μ μ‘λ λ©μΈμ§λ κ²μ μ€λΈμ νΈμ ν¬ν¨λ λͺ¨λ μ»΄ν¬λνΈλ€μκ² λΈλ‘λμΊμ€ν λμ΄ λΆνμν μ€λ²ν€λκ° μκΈΈ μ μμ΅λλ€. λμ§Έ, κ²μ μ€λΈμ νΈμ μΌλΆ λμμ κΉ¨νΈλ¦΄μλ μμ΅λλ€. μλ₯Ό λ€μ΄, κ²μ μ€λΈμ νΈκ° μ¬λ¬ κ°μ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈλ₯Ό κ°μ§κ³ μκ³ λμμ μ²λ¦¬ν μ μλλ‘ μ€κ³λμ§ μμ μ±λ‘ μ΄ μ€ν¬λ¦½νΈκ° μ λΆ "my_message"λΌλ λ©μΈμ§λ₯Ό κΈ°λ€λ¦¬κ³ μλ€κ³ κ°μ ν΄ λ΄ μλ€. λ©μΈμ§μ μ£Όμλ₯Ό μ§μ νλλ° κΆμ₯νλ λ°©λ²μΌλ‘λ κ°λ₯ν ꡬ체μ μ΄κ³ κ²μ μ€λΈμ νΈμ μ»΄ν¬λνΈκ° μ°¨μ΄λ₯Ό μκΈ° μ½κ² μ§μ νλ κ²μ΄ μ’μ λ°©λ²μ λλ€.
msg.post("my_object#script", "my_message", { my_data = 1 })μ»΄ν¬λνΈλ νκ°μ§ λλ λ€λ₯Έ λ°©λ²μΌλ‘ μ»΄ν¬λνΈλ₯Ό λ³κ²½νλλ‘ μ ν λ μ νλ³ νΉμ μμ±λ€μ΄ μμ΅λλ€. μ€νλΌμ΄νΈ μ»΄ν¬λνΈμλ λμ΄(width)μ κΈΈμ΄(height)κ° μμΌλ©°, μ¬μ΄λ μ»΄ν¬λνΈμλ μ¬μ΄λλ₯Ό λ°λ³΅ν μ§ μ¬λΆλ₯Ό κ²°μ νλ μμ±μ΄ μμ΅λλ€. λ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈμμλ νΉμ ν μμ±μ μ§μ λ§λ€ μλ μμ΅λλ€. μ€ν¬λ¦½νΈ νμΌμ μμ±μ λ§λλ μ½λλ₯Ό μΆκ°νλ©΄ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈμ μμ±μ μ½κ² μ μν μ μμ΅λλ€.
-- self.healthλ μλμΌλ‘ 100μ κΈ°λ³Έκ°μΌλ‘ μ
ν
ν¨.
-- μ΄ μ€ν¬λ¦½νΈ μ»΄ν¬λνΈλ₯Ό ν¬ν¨νλ μΈμ€ν΄μ€μ μ΄κΈ°κ°μ λ³κ²½ν μ μμ.
go.property("health", 100)
function on_message(self, message_id, message, sender)
-- μ΄μ "self.health"λΌλ μμ±κ°μ μ‘μΈμ€ ν μ μμ
...
endμ€ν¬λ¦½νΈ μμ±μ΄ μ΄λ»κ² λμνλμ§ μ΄λ»κ² μ¬μ©νλμ§ μμΈν μ€λͺ μ΄ μκ³ μΆλ€λ©΄ Script properties λ¬Έμλ₯Ό μ°Έκ³ λ°λλλ€. μ€ν¬λ¦½νΈ μμ±μ μ μνλ©΄ κ·Έ μμ±κ³Ό μ°κ΄λ μλ£νμΌλ‘ λ€λ₯Έ 보ν΅μ μμ±λ€μ²λΌ νμΌμ μ μ₯λ©λλ€. κ²μ μ€λΈμ νΈκ° νλ‘ν νμ μ μν΄ μΈμ€ν΄μ€ν λ κ²½μ°μ λ³λμ component_properties μμ±μ΄ μ€ν¬λ¦½νΈ μμ±(ν₯μ°μ λ€λ₯Έ μ»΄ν¬λνΈμλ κ°λ₯ν μ§λ)μ ν¬ν¨νλ μ€λΈμ νΈ μΈμ€ν΄μ€μ μΆκ°λ©λλ€:
component_properties {
id: "script"
properties {
id: "my_property"
value: "4712.0"
type: PROPERTY_TYPE_NUMBER
}
}λ°λλ‘ μλ² λλ λ κ²μ μ€λΈμ νΈμμ λͺ¨λ μ»΄ν¬λνΈ μμ±μ λͺ μμ μΌλ‘ properties μμ±μΌλ‘ 컬λ μ νμΌμ νμλ©λλ€:
data: "components {\n id: \"some_script\"\n component: \"/a_simple_test/my_thing.script\"\n position {\n x: 0.0\n y: 0.0\n z: 0.0\n }\n rotation {\n x: 0.0\n y: 0.0\n z: 0.0\n w: 1.0\n }\n properties {\n id: \"my_property\"\n value: \"4713.0\"\n type: PROPERTY_TYPE_NUMBER\n }\n}\ncomponents {\n id: \"sprite\"\n component: \"/a_simple_test/my_heart.sprite\"\n position {\n x: 0.0\n y: 0.0\n z: 0.0\n }\n rotation {\n x: 0.0\n y: 0.0\n z: 0.0\n w: 1.0\n }\n}\n"컬λ μ μ ν νλ¦Ώ μμ±μ μν Defoldμ λ©μ»€λμ¦μ΄λ©° λ€λ₯Έ κ²μμμ§μμ ν리ν©(prefab)μ΄λΌκ³ λ λΆλ € μ§κΈ°λ ν©λλ€. 컬λ μ μ κ²μ μ€λΈμ νΈλ€μ΄λ λ λ€λ₯Έ 컬λ μ λ€μ κ°μ§λ νΈλ¦¬κ΅¬μ‘°λ‘ λμ΄ μμ΅λλ€. 컬λ μ μ νμ νμΌμ μ μ₯λλ©° νλκ°μ§ λ°©λ²μΌλ‘ κ²μμΌλ‘ λΆλ¬μ¬ μ μμ΅λλ€:
- λΉλμ 컬λ μ μ μλν°μμ λ€λ₯Έ 컬λ μ μ λ°°μΉνλ λ°©λ²
- λ°νμμ 컬λ μ νλ‘μ(Collection proxy)λ₯Ό μ¬μ©ν΄μ 컬λ μ μ λͺ¨μΈ λͺ¨λ 리μμ€λ₯Ό λμ μΌλ‘ λ‘λ©νλ λ°©λ²(μμΈν κ²μ Collection proxyλ¬Έμλ₯Ό μ°Έκ³ λ°λλλ€.)
μλν°μ μμΉν 컬λ μ λ€μ μμ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄ λ°°μΉλ 컬λ μ μ μΌλΆμΈ κ²μ μ€λΈμ νΈμ νμ νλͺ©μ μΆκ°ν μ μμ΅λλ€. 컬λ μ μΈμ€ν΄μ€μ μ μ₯λ λ°μ΄ν°λ₯Ό 보면 μ λ κ±° κ°μλ° μ μλ κΉμ? κ²μ μ€λΈμ νΈλ₯Ό ν¬ν¨νκ³ μλ μ΄ λ°μ΄ν°λ "my_collection.collection"μ΄λΌλ μ°Έμ‘°λ 컬λ μ νμΌ μμ μκ³ μ΄κ²μ μμ λλ κ²μ΄ μλλλ€.
컬λ μ νμΌ μλ³Έμ μμ νμ§ μκ³ λ 컬λ μ μ λ΄μ©μ μμ ν μ μμ§λ§, μλν°λ 컬λ μ μμ μ»΄ν¬λνΈλ€κ³Ό μ°κ΄λ μ€ν¬λ¦½νΈ μμ±κ³Ό λμΌνκ² μμ±κ°λ€μ μμ μ νμ©ν©λλ€.
collection_instances {
id: "my_collection"
collection: "/a_simple_test/my_collection.collection"
position {
x: -172.74739
y: 149.61157
z: 0.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale: 1.0
instance_properties {
id: "my_gameobject"
properties {
id: "script"
properties {
id: "my_property"
value: "4717.0"
type: PROPERTY_TYPE_NUMBER
}
}
}
}λ§μ΄λ€ ν·κ°λ¦¬λ μ μ 컬λ μ κ³μΈ΅κ΅¬μ‘°μ κ²μ μ€λΈμ νΈμ μμΉκ° λ°νμμμ λΆλͺ¨-μμ κ³μΈ΅(set_parent λ©μΈμ§λ‘ λ§Ίμ΄μ§)μΌλ‘ λλ€λ κ²μ΄ μμ΅λλ€. μ¬κΈ°μ λ κ°μ§ μ°¨μ΄μ μ κΉ¨λ«λ κ²μ΄ μ€μνλ°, 컬λ μ μ κ΄λ¦¬ λ° κ·Έλ£Ήνλ₯Ό μλ―Ένλ λ°λ©΄, λΆλͺ¨-μμ κ³μΈ΅μ μ€λΈμ νΈκ° λλ€λ₯Έ μ€λΈμ νΈμ μκ°μ μΌλ‘ μ°κ²°λμ΄ μ¬ κ·Έλν(scene graph)λ₯Ό λμ μΌλ‘ μμ νλ κ²μ μλ―Έν©λλ€. 컬λ μ κ³μΈ΅μμλ κ²μ μ€λΈμ νΈμ μμΉλ‘ idλ₯Ό μ§μ νμ§λ§ μ΄ idλ μ€λΈμ νΈμ μλͺ κΈ°κ° λμμ μ μ (static)μνμ λλ€. κ²μ μ€λΈμ νΈμ μ£Όμ μ§μ (addressing)μ λν μμΈν μ€λͺ μ Message passing λ¬Έμλ₯Ό μ°Έκ³ λ°λλλ€.









