EditorPluginã®add_custom_type
é¢æ°ã«ãã£ãŠäœæãããããŒãã«ã¯ãè¿œå æã«éžæããã¹ã¯ãªãããå²ãåœãŠãããŸãã ãã®ã¹ã¯ãªããã§å®çŸ©ãããé¢æ°ã¯ä»ã®ããŒãã§ãã䜿çšã§ããªããããããã«ããããããã¯ã»ãšãã©åœ¹ã«ç«ããªããªããŸãã
ããã¯ä»ã®ããŒããšã¯å®å šã«ç°ãªããããŒãã¢ããªã³ã¯ã»ãšãã©åœ¹ã«ç«ããªã/䜿çšããã®ãã¯ããã«é¢åã«ãªããŸãã
æå³ãããããŸãã
@reduzãã©ã°ã€ã³ã«ãã£ãŠäœæãããã¿ã€ãã®ããŒããã·ãŒã³ã«è¿œå ãããšããã©ã°ã€ã³ã¹ã¯ãªããããã§ã«æ·»ä»ãããŠããŸãã ãããã£ãŠãã«ã¹ã¿ã åäœã§å¥ã®ã¹ã¯ãªãããè¿œå ããããšã¯ã§ããŸããã
ãã¡ããããã§ã¯ãããŸãããããã¯ã³ã¢èšèšã«ãããã®ã§ãããå€æŽãããããšã¯ãããŸããã
2016幎8æ7æ¥18:11ããGeorgeMarquesã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@reduz https://github.com/reduzã·ãŒã³ã«ããŒããè¿œå ãããšã
ãã©ã°ã€ã³ã«ãã£ãŠäœæãããã¿ã€ãã§ããã©ã°ã€ã³ã¹ã¯ãªããããã§ã«æ·»ä»ãããŠããŸãã ãã
ã«ã¹ã¿ã åäœã§å¥ã®ã¹ã¯ãªãããè¿œå ããããšã¯ã§ããŸããã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238108767ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z29F5q8PaoBv4OrzAUayzrfNjfHyZks5qdkoUgaJpZM4JejbZ
ã
ããã¯æ²ããããšã ã ãã ããã¹ã¯ãªããã¯ãã€ã§ã芪ãŸãã¯åã«è¿œå ã§ããŸãã
wontfixãšããŠéããŸãã
ç§ã¯äœãã誀解ããŠãããããããŸããããã«ã¹ã¿ã ã¿ã€ããã¹ã¯ãªããã®å Žåã
äœæãããããŒãã«ã©ã®ããã«å«ãŸããŸãããïŒ æå³ããããŸãã
éãããš
2016幎8æ7æ¥ååŸ9æ52åããGeorgeMarquesã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ããã¯æ²ããããšã ã ãã ããã¹ã¯ãªããã¯ãã€ã§ã芪ãŸãã¯åã«è¿œå ã§ããŸãã
wontfixãšããŠéããŸãã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238120392ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z27Zo4Ixvo4APSC4Fxf5ZqCJRsAxXks5qdn3igaJpZM4JejbZ
ã
ããŒãããšã«2ã€ïŒãŸãã¯ãã以äžïŒã®ã¹ã¯ãªãããæã€æ©èœãå¿ èŠã«ãªããšæããŸãããããã¯å®éã«ã¯ããŸãæå³ããããŸããã
Godotã¯åœåããããµããŒãããŠããŸããããå©ç¹ãããåä»ã§ãã
2016幎8æ7æ¥ååŸ10æ36åããGeorgeMarquesã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ããã2ã€ïŒãŸãã¯ãã以äžïŒã®ã¹ã¯ãªãããæã€èœåãå¿ èŠã«ãªããšæããŸã
ããŒãããã ãããã¯å®éã«ã¯ããŸãæå³ããããŸãããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238123729ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z27jidVZl-hHWW3G_ESr8Cqj3eX7Eks5qdogRgaJpZM4JejbZ
ã
åé¡ã¯ãã«ã¹ã¿ã ããŒãã¯å®éã«ã¯ãã«ã¹ã¿ã ããŒããã§ã¯ãªããäºåã«èšå®ãããã¹ã¯ãªãããšç°ãªãã¢ã€ã³ã³ãæã€åãªãããŒã¹ããŒãã§ãããããã»ãšãã©åœ¹ã«ç«ããªãããšã§ãã
ãã«ã¹ã¿ã ããŒããã«æåŸ
ããã®ã¯ãã¹ã¯ãªããã§å®çŸ©ãããŠãããã®ã䜿çšããããã«ããŒããæ¡åŒµã§ããããšã§ãã ã·ããªãªäŸïŒ
Spriteã®åã§ããTestãšããã«ã¹ã¿ã ããŒããããã true
test()
é¢æ°ãè¿œå ããŠããŸãã 次ã«ãæ°ãããã¹ãããŒããäœæããããã«ã¹ã¯ãªãããå²ãåœãŠãŠã test()
é¢æ°ã䜿çšããŸãã
äžå¯èœã ãã
ã·ãŒã³ã«æ»ã£ãŠã+ã¹ã¯ãªãããç¶æ¿ããŠã³ã³ããæ¡åŒµãããšæããŸãã
ããŠãããªã»ããã¹ã¯ãªãããšç°ãªãã¢ã€ã³ã³ãæã€ããªã»ããããŒãã§ããããšã¯IMOã§ã
ååãªã«ã¹ã¿ã ã§ãããæ¬åœã«ç¬èªã®ã«ã¹ã¿ã ã³ãŒããå
¥ãããå Žå
ããã§ã¯ãããŒãã«ä»å±ããŠãããã®ããã€ã§ãç¶æ¿ã§ããŸãã æã
ã¯åºæ¥ã
æ¬åœã«å¿
èŠãªå Žåã¯ãUIãããããå°ãç°¡åã«ããŸãã
2016幎8æ8æ¥æææ¥åå10æ40åãDominik [email protected]
æžããŸããïŒ
åé¡ã¯ãã«ã¹ã¿ã ããŒãã¯å®éã«ã¯åœ¹ã«ç«ããªããããã»ãšãã©åœ¹ã«ç«ããªããšããããšã§ãã
ãã«ã¹ã¿ã ããŒããããããã¯äºåèšå®ãããã¹ã¯ãªãããåããåãªãããŒã¹ããŒãã§ãããç°ãªã
ã¢ã€ã³ã³ã ã·ãŒã³ã«æ»ã£ãŠã+ã¹ã¯ãªãããç¶æ¿ããŠã³ã³ããæ¡åŒµãããšæããŸããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238240130ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z27eHoXwgr6buF6CCAHfxwx1dKkCiks5qdzHhgaJpZM4JejbZ
ã
UIãä»ããŠèªåå/ç°¡ååã§ãããšããã®ã§ããã
ç§ãç解ããŠããããã«ãçµã¿èŸŒã¿ããŒãã®ããã«åäœããã«ã¹ã¿ã ããŒããäœæããå¯èœæ§ãããããšãæåŸ ãããŸããã€ãŸãã次ã®æ©èœãåããŠããå¿ èŠããããŸãã
RedNode2D
ã¯Node2D
ãæ¡åŒµããã«ã¹ã¿ã ã¹ã¯ãªãããä»ããŠèµ€ãå€èª¿ãå®çŸ©ããŸãïŒextends RedNode2D
ïŒãããã¯ãã«ã¹ã¿ã ããŒãã宣èšãããšãã®ãèªç¶ãªãæåŸ ã§ãããéåžžã«åŒ·åãªæ©èœã§ãã äžèšã®ããšããããããŸã§ã®ãšãããèšèšäžã®æ±ºå®ãããããã®ããã«ã¯æ©èœããªãããšãããããŸããã ç§ãäžã§èª¬æãããããªæ©èœãæã€æ¹æ³ãããã°ãããã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ãæã£ãŠãããšç¢ºä¿¡ããŠããŸãã Assetlibã¯ãç®±ããåºããŠããã«å€ãã®äœæ¥ãè¡ãã«ã¹ã¿ã ããŒãã§ãã£ã±ãã«ãªããçµã¿èŸŒã¿ã®ããã«äœ¿çšã§ããŸãã
äœãã§ããããäœããã¹ããã«ã€ããŠã³ã³ã»ã³ãµã¹ãåŸããããŸã§åéããŸãã
+1
ããã¯ãæ¢åã®ãããžã§ã¯ãããOtherEngineïŒtmïŒãããGodotã«ç§»æ€ããããšãããšãã®æåã®å€§ããªé害ã®1ã€ã§ããã äžã§èª¬æãã@ akien-mgaã®ãããªã«ã¹ã¿ã åã¯ãç»é²åŸã«ä»ã®çµã¿èŸŒã¿åãšåãããã«åäœããã¯ãã§ãã
圌ããä¿¡ããŠããªãæ¹æ³ã説æããŠãã ãã
2016幎8æ8æ¥åå11æ50åããRalfHölzemerã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
+1
ããã¯ãç§ã移æ€ããããšãããšãã®æåã®äž»èŠãªé害ã®1ã€ã§ããã
ãOtherEngineïŒtmïŒãããGodotãžã®æ¢åã®ãããžã§ã¯ãã ã®ãããªã«ã¹ã¿ã ã¿ã€ã
@ akien-mga https://github.com/akien-mgaäžèšã§èª¬æããããã«ã
ç»é²åŸãä»ã®çµã¿èŸŒã¿åãšåãããã«åäœããŸããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238261603ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z25PJzv9w7iXO350tRF3FcEuYQYUKks5qd0IrgaJpZM4JejbZ
ã
ãã§ã«åã«è¿°ã¹ãããã«ãçŸæç¹ã§ã®æ倧ã®æ¬ ç¹ã¯ãã«ã¹ã¿ã ã¿ã€ããããã®ã¹ã¯ãªããã®åºæ¬ã¿ã€ããã€ã³ã¹ã¿ã³ã¹åãããã®ã€ã³ã¹ã¿ã³ã¹ã«é©åãªã¹ã¯ãªãããå²ãåœãŠãããã®ç°¡åãªæ¹æ³ã«ãããªãããšã§ãã ããã«ãããçµã¿èŸŒã¿åã§è¡ãããšãã§ããããã«ãå¥ã®ã¹ã¯ãªããã䜿çšããŠãšãã£ã¿ãŒã§ãã®ããŒããæ¡åŒµããããšã¯äžå¯èœã«ãªããŸãã
ãã ãã[æ°ããããŒã/ãªãœãŒã¹ã®äœæ]ãã€ã¢ãã°ã§ã«ã¹ã¿ã ããŒãã䜿çšããŠç¶æ¿ããªãŒãæ§ç¯ããããšãã§ããŸããããããã®ããªãŒã¯ãadd_custom_typeãä»ããŠçµã¿èŸŒã¿åã«èŠªãšããŠç»é²ããå Žåã«ã®ã¿è¡šç€ºãããããã§ãã
ããšãã°ããããžã§ã¯ãå ã®ãã¹ãŠã®ã«ã¹ã¿ã åãåäžã®åºæ¬åããç¶æ¿ããããšããŸãã
base.gd
extends Node
export (Color) var color
type_a.gd
extends base.gd
type_b.gd
extends base.gd
ä»ã®ãšãããããããã¿ã€ããç»é²ããå¿ èŠããããŸãã ãã®å Žåãadd_custom_typeã®2çªç®ã®åŒæ°ã¯ãNodeãã§ããå¿ èŠããããŸããããã§ãªãå Žåããã€ã¢ãã°ã«è¡šç€ºãããŸããã
func _enter_tree():
add_custom_type("Base", "Node", preload("base.gd"), preload("base.png"))
add_custom_type("TypeA", "Node", preload("type_a.gd"), preload("type_a.png"))
add_custom_type("TypeB", "Node", preload("type_b.gd"), preload("type_b.png"))
...ãããŠãããçµæã§ãã
ãã®ãããªã«ã¹ã¿ã åãç»é²ã§ããã®ã¯è¯ãããšã§ããããã€ã¢ãã°ã¯ä»ã®çµã¿èŸŒã¿åã®ããã«ãããã®åã®ç¶æ¿ã®æ§è³ªãåæ ããŠããŸããã çµã¿èŸŒã¿åã®å Žåã¯ããã®ããªãŒãèŠãŠãäœãæ±ã£ãŠããããäžç®ã§ããããŸãã ããšãã°ãSpriteãNode2Dã§ããããã®ããNode2Dã«ãã£ãŠæäŸããããã¹ãŠã®æ©èœãç¶æ¿ããŠããããšã確èªã§ããŸãã åãããšã¯ã«ã¹ã¿ã ã¿ã€ãã«ã¯åœãŠã¯ãŸããŸããã
ããŠãåè¿°ã®@ akien-mgaã®ããã«ãã«ã¹ã¿ã ã¿ã€ããã°ããŒãã«ã¹ã³ãŒãã«å®å šã«ç»é²ã§ããã°ãç解ãšäœ¿çšãã¯ããã«ç°¡åã«ãªããŸãã
ãŸãããã¡ã€ã«ã®ãã¹/ååã®ä»£ããã«ã¿ã€ãåã§åç §ãããã«ã¹ã¿ã ã¿ã€ãããç¶æ¿ã§ããŸãã
base.gd
extends Node
export (Color) var color
type_a.gd
extends Base
type_b.gd
extends Base
...次ã«ãã«ã¹ã¿ã ã¿ã€ãã®ç»é²ã次ã®ããã«ç°¡ç¥åã§ããŸãã add_custom_typeã®2çªç®ã®ãã©ã¡ãŒã¿ãŒãæ¬ èœããŠããããšã«æ³šæããŠãã ããã
func _enter_tree():
add_custom_type("Base", preload("base.gd"), preload("base.png"))
add_custom_type("TypeA", preload("type_a.gd"), preload("type_a.png"))
add_custom_type("TypeB", preload("type_b.gd"), preload("type_b.png"))
...ãããŠã[æ°ããããŒã/ãªãœãŒã¹ã®äœæ]ãã€ã¢ãã°ã§ããè¯ãæŠèŠãåŸãããŸãã
...ãããŠãã¡ãããã«ã¹ã¿ã ã¹ã¯ãªããã䜿çšããŠãšãã£ã¿ãŒã§ãããã®ã¿ã€ããæ¡åŒµããæ©èœïŒ
...ãããã¹ã¯ãªããå/ãã¹ã®ä»£ããã«ã¿ã€ãåã§åç §ãããŸã
extends Base
ãããäžããã®ãã©ã°ã€ã³ã®äŸã§ãã
addons.zip
ããããªãã»ã©..ãããã®2ã€ã®æ³¥æ£ã¯ãäžç·ã«ãééããªãä¿®æ£å¯èœã§ãªããã°ãªããŸãã
ã¹ã¯ãªããäœæãã€ã¢ãã°ã«ç¶æ¿ãµããŒããè¿œå
2016幎8æ8æ¥ååŸ1æ54åããRalfHölzemerã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ãã§ã«åã«è¿°ã¹ãããã«ãçŸæç¹ã§ã®_æ倧ã®æ¬ ç¹_ã¯
ã«ã¹ã¿ã ã¿ã€ãã¯ãããŒã¹ã¿ã€ããã€ã³ã¹ã¿ã³ã¹åããç°¡åãªæ¹æ³ã«ãããŸããã
ãã®ã¹ã¯ãªããã®ãäœæãããã®ã€ã³ã¹ã¿ã³ã¹ã«é©åãªã¹ã¯ãªãããå²ãåœãŠãŸãã ãã®
å¥ã®ã¹ã¯ãªããã䜿çšããŠãšãã£ã¿ãŒã§ãã®ããŒããæ¡åŒµããããšã¯äžå¯èœã«ãªããŸã-
çµã¿èŸŒã¿åã§ã§ããããã«ããã ããã«ã¹ã¿ã ããŒãã䜿çšããŠç¶æ¿ããªãŒãæ§ç¯ããããšãã§ããŸããã
[æ°ããããŒã/ãªãœãŒã¹ã®äœæ]ãã€ã¢ãã°ã¯ããããã«ã®ã¿è¡šç€ºãããããã
çµã¿èŸŒã¿åã«èŠªãšããŠç»é²ãããšã
add_custom_typeãããšãã°ããã¹ãŠã®ã«ã¹ã¿ã ã¿ã€ããç¶æ¿ããããšããŸãã
åäžã®åºæ¬ã¿ã€ãããã®ãããžã§ã¯ãã_base.gd httpïŒ//base.gd_
ããŒããæ¡åŒµããŸã
ãšã¯ã¹ããŒãïŒè²ïŒvar color_type_a.gd httpïŒ//type_a.gd_
base.gdãæ¡åŒµããŸã
_type_b.gd httpïŒ//type_b.gd_
base.gdãæ¡åŒµããŸã
ä»ã®ãšãããããããã¿ã€ããç»é²ããå¿ èŠããããŸãã ããã§
ãã®å Žåãadd_custom_typeã®2çªç®ã®åŒæ°ã¯ãNodeãã§ããå¿ èŠããããŸããããã§ãªãå Žåã
ãã€ã¢ãã°ã«ã¯è¡šç€ºãããŸãããfunc _enter_treeïŒïŒïŒ
add_custom_typeïŒ "Base"ã "Node"ãpreloadïŒ "base.gd"ïŒãpreloadïŒ "base.png"ïŒïŒ
add_custom_typeïŒ "TypeA"ã "Node"ãpreloadïŒ "type_a.gd"ïŒãpreloadïŒ "type_a.png"ïŒïŒ
add_custom_typeïŒ "TypeB"ã "Node"ãpreloadïŒ "type_b.gd"ïŒãpreloadïŒ "type_b.png"ïŒïŒ...ãããŠãããçµæã§ãã
[ç»åïŒadd_node_flat]
https://cloud.githubusercontent.com/assets/8785013/17486294/9bcc029c-5d90-11e6-81e6-6fce6b0e7cf0.pngãã®ãããªã«ã¹ã¿ã ã¿ã€ããç»é²ã§ããã®ã¯çŽ æŽãããããšã§ããã
ãã€ã¢ãã°ã¯ã次ã®ãããªã¿ã€ãã®ç¶æ¿ã®æ§è³ªãåæ ããŠããŸãã
ãã®ä»ã®çµã¿èŸŒã¿åã çµã¿èŸŒã¿åã®å Žåã¯ããã®ããªãŒãèŠãŠã
ç§ãæ±ã£ãŠãããã®ãäžç®ã§èŠãŠãã ããã ããšãã°ãç§ã¯ããã確èªããããšãã§ããŸã
ã¹ãã©ã€ãã¯Node2Dã§ãããããæäŸããããã¹ãŠã®é¢æ°ãç¶æ¿ããŸãã
by_Node2Dã åãããšã¯ã«ã¹ã¿ã ã¿ã€ãã«ã¯åœãŠã¯ãŸããŸãããããã§ãã«ã¹ã¿ã ã¿ã€ããã°ããŒãã«ã¹ã³ãŒãã«å®å šã«ç»é²ã§ããå Žåã¯ã次ã®ããã«ãªããŸãã
@ akien-mga https://github.com/akien-mgaäžèšã®ããã«ãç©äºã¯
ç解ãšäœ¿çšãã¯ããã«ç°¡åã«ãªããŸãããŸãã_typename_ã«ãã£ãŠåç §ãããã«ã¹ã¿ã ã¿ã€ãããç¶æ¿ã§ããŸãã
ãã¡ã€ã«ã®ãã¹/ååã®ä»£ããã«ã_base.gd httpïŒ//base.gd_
ããŒããæ¡åŒµããŸã
ãšã¯ã¹ããŒãïŒè²ïŒvar color_type_a.gd httpïŒ//type_a.gd_
ããŒã¹ãæ¡åŒµããŸã
_type_b.gd httpïŒ//type_b.gd_
ããŒã¹ãæ¡åŒµããŸã
...次ã«ãã«ã¹ã¿ã ã¿ã€ãã®ç»é²ã次ã®ããã«ç°¡ç¥åã§ããŸãã
ããã add_custom_typeã®2çªç®ã®ãã©ã¡ãŒã¿ãŒãæ¬ èœããŠããããšã«æ³šæããŠãã ãããfunc _enter_treeïŒïŒïŒ
add_custom_typeïŒ "Base"ãpreloadïŒ "base.gd"ïŒãpreloadïŒ "base.png"ïŒïŒ
add_custom_typeïŒ "TypeA"ãpreloadïŒ "type_a.gd"ïŒãpreloadïŒ "type_a.png"ïŒïŒ
add_custom_typeïŒ "TypeB"ãpreloadïŒ "type_b.gd"ïŒãpreloadïŒ "type_b.png"ïŒïŒ...ãããŠãCreatenewãã§ããè¯ãæŠèŠãåŸãããšãã§ããŸã
ããŒã/ãªãœãŒã¹ããã€ã¢ãã°ïŒ[ç»åïŒadd_node_tree]
https://cloud.githubusercontent.com/assets/8785013/17487264/619f4da0-5d94-11e6-880f-a00791e30125.png...ãããŠãã¡ããããšãã£ã¿ãŒã§ãããã®ã¿ã€ããæ¡åŒµããæ©èœ
ã«ã¹ã¿ã ã¹ã¯ãªããïŒ[ç»åïŒcustom_type_no_script]
https://cloud.githubusercontent.com/assets/8785013/17487807/b54aced2-5d96-11e6-90e5-ee838b6a1335.png...ãããã¹ã¯ãªããã®ä»£ããã«_typename_ã«ãã£ãŠåç §ãããŸã
åå/ãã¹ããŒã¹ãæ¡åŒµããŸã
ãããäžããã®ãã©ã°ã€ã³ã®äŸã§ãã
addons.zip https://github.com/godotengine/godot/files/407291/addons.zipâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238299152ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z20FQioFVkVcvhhbvDQ7jQKv5De7Hks5qd19QgaJpZM4JejbZ
ã
決ããŠèµ·ãããªãã®ã¯ãã€ã³ã¹ã¿ã³ã¹åãããããŒãããã¹ã¯ãªãããæ¶ããããšã§ãã
é衚瀺ã«ãªã£ãŠãããããããŒããã¹ã¯ãªããåãããŠããããšãæ確ã«ããå¿
èŠããããŸããã
ã¹ã¯ãªãããè¿œå ãããšãã¹ã¯ãªããã次ã®ã¹ã¯ãªããã«çœ®ãæããããšãã§ããŸãã
ããããç¶æ¿ããŸã
2016幎8æ8æ¥14:02ããJuanLinietskyã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ããããªãã»ã©..ãããã®2ã€ã®æ³¥æ£ã¯ãäžç·ã«ãééããªãä¿®æ£å¯èœã§ãªããã°ãªããŸãã
ã¹ã¯ãªããäœæãã€ã¢ãã°ã«ç¶æ¿ãµããŒããè¿œå2016幎8æ8æ¥ååŸ1æ54åããRalfHölzemerã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ãã§ã«åã«è¿°ã¹ãããã«ãçŸæç¹ã§ã®_æ倧ã®æ¬ ç¹_ã¯
ã«ã¹ã¿ã ã¿ã€ãã¯ãããŒã¹ã¿ã€ããã€ã³ã¹ã¿ã³ã¹åããç°¡åãªæ¹æ³ã«ãããŸããã
ãã®ã¹ã¯ãªããã®ãäœæãããã®ã€ã³ã¹ã¿ã³ã¹ã«é©åãªã¹ã¯ãªãããå²ãåœãŠãŸãã ãã®
å¥ã®ã¹ã¯ãªããã䜿çšããŠãšãã£ã¿ãŒã§ãã®ããŒããæ¡åŒµããããšã¯äžå¯èœã«ãªããŸã-
çµã¿èŸŒã¿åã§ã§ããããã«ããã ããã«ã¹ã¿ã ããŒãã䜿çšããŠç¶æ¿ããªãŒãæ§ç¯ããããšãã§ããŸããã
[æ°ããããŒã/ãªãœãŒã¹ã®äœæ]ãã€ã¢ãã°ã¯ããããã«ã®ã¿è¡šç€ºãããããã
çµã¿èŸŒã¿åã«èŠªãšããŠç»é²ãããšã
add_custom_typeãããšãã°ããã¹ãŠã®ã«ã¹ã¿ã ã¿ã€ããç¶æ¿ããããšããŸãã
åäžã®åºæ¬ã¿ã€ãããã®ãããžã§ã¯ãã_base.gd httpïŒ//base.gd_
ããŒããæ¡åŒµããŸã
ãšã¯ã¹ããŒãïŒè²ïŒvar color_type_a.gd httpïŒ//type_a.gd_
base.gdãæ¡åŒµããŸã
_type_b.gd httpïŒ//type_b.gd_
base.gdãæ¡åŒµããŸã
ä»ã®ãšãããããããã¿ã€ããç»é²ããå¿ èŠããããŸãã ããã§
ãã®å Žåãadd_custom_typeã®2çªç®ã®åŒæ°ã¯ãNodeãã§ããå¿ èŠããããŸããããã§ãªãå Žåã
ãã€ã¢ãã°ã«ã¯è¡šç€ºãããŸãããfunc _enter_treeïŒïŒïŒ
add_custom_typeïŒ "Base"ã "Node"ãpreloadïŒ "base.gd"ïŒãpreloadïŒ "base.png"ïŒïŒ
add_custom_typeïŒ "TypeA"ã "Node"ãpreloadïŒ "type_a.gd"ïŒãpreloadïŒ "type_a.png"ïŒïŒ
add_custom_typeïŒ "TypeB"ã "Node"ãpreloadïŒ "type_b.gd"ïŒãpreloadïŒ "type_b.png"ïŒïŒ...ãããŠãããçµæã§ãã
[ç»åïŒadd_node_flat]
https://cloud.githubusercontent.com/assets/8785013/17486294/9bcc029c-5d90-11e6-81e6-6fce6b0e7cf0.pngãã®ãããªã«ã¹ã¿ã ã¿ã€ããç»é²ã§ããã®ã¯çŽ æŽãããããšã§ããã
ãã€ã¢ãã°ã¯ã次ã®ãããªã¿ã€ãã®ç¶æ¿ã®æ§è³ªãåæ ããŠããŸãã
ãã®ä»ã®çµã¿èŸŒã¿åã çµã¿èŸŒã¿åã®å Žåã¯ããã®ããªãŒãèŠãŠã
ç§ãæ±ã£ãŠãããã®ãäžç®ã§èŠãŠãã ããã ããšãã°ãç§ã¯ããã確èªããããšãã§ããŸã
ã¹ãã©ã€ãã¯Node2Dã§ãããããæäŸããããã¹ãŠã®é¢æ°ãç¶æ¿ããŸãã
by_Node2Dã åãããšã¯ã«ã¹ã¿ã ã¿ã€ãã«ã¯åœãŠã¯ãŸããŸãããããã§ãã«ã¹ã¿ã ã¿ã€ããã°ããŒãã«ã¹ã³ãŒãã«å®å šã«ç»é²ã§ããå Žåã¯ã
äžèšã®@ akien-mga https://github.com/akien-mgaã®ããã«ã
ç解ããŠäœ¿çšããæ¹ãã¯ããã«ç°¡åã§ãããŸãã_typename_ã«ãã£ãŠåç §ãããã«ã¹ã¿ã ã¿ã€ãããç¶æ¿ã§ããŸãã
ãã¡ã€ã«ã®ãã¹/ååã®ä»£ããã«ã_base.gd httpïŒ//base.gd_
ããŒããæ¡åŒµããŸã
ãšã¯ã¹ããŒãïŒè²ïŒvar color_type_a.gd httpïŒ//type_a.gd_
ããŒã¹ãæ¡åŒµããŸã
_type_b.gd httpïŒ//type_b.gd_
ããŒã¹ãæ¡åŒµããŸã
...次ã«ãã«ã¹ã¿ã ã¿ã€ãã®ç»é²ã次ã®ããã«ç°¡ç¥åã§ããŸãã
ããã add_custom_typeã®2çªç®ã®ãã©ã¡ãŒã¿ãŒãæ¬ èœããŠããããšã«æ³šæããŠãã ãããfunc _enter_treeïŒïŒïŒ
add_custom_typeïŒ "Base"ãpreloadïŒ "base.gd"ïŒãpreloadïŒ "base.png"ïŒïŒ
add_custom_typeïŒ "TypeA"ãpreloadïŒ "type_a.gd"ïŒãpreloadïŒ "type_a.png"ïŒïŒ
add_custom_typeïŒ "TypeB"ãpreloadïŒ "type_b.gd"ïŒãpreloadïŒ "type_b.png"ïŒïŒ...ãããŠãCreatenewãã§ããè¯ãæŠèŠãåŸãããšãã§ããŸã
ããŒã/ãªãœãŒã¹ããã€ã¢ãã°ïŒ[ç»åïŒadd_node_tree]
https://cloud.githubusercontent.com/assets/8785013/17487264/619f4da0-5d94-11e6-880f-a00791e30125.png...ãããŠãã¡ããããšãã£ã¿ãŒã§ãããã®ã¿ã€ããæ¡åŒµããæ©èœ
ã«ã¹ã¿ã ã¹ã¯ãªããïŒ[ç»åïŒcustom_type_no_script]
https://cloud.githubusercontent.com/assets/8785013/17487807/b54aced2-5d96-11e6-90e5-ee838b6a1335.png...ãããã¹ã¯ãªããã®ä»£ããã«_typename_ã«ãã£ãŠåç §ãããŸã
åå/ãã¹ããŒã¹ãæ¡åŒµããŸã
ãããäžããã®ãã©ã°ã€ã³ã®äŸã§ãã
addons.zip https://github.com/godotengine/godot/files/407291/addons.zipâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -238299152ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z20FQioFVkVcvhhbvDQ7jQKv5De7Hks5qd19QgaJpZM4JejbZ
ã
@reduz
ããŒããã¹ã¯ãªããåãããŠããããšãæ確ã«ããæè¡çãªçç±ã¯ãããŸããïŒãããããªããããã¯å æãããã¹ã¯ãªããã¹ãããã§ããå¿
èŠããããŸããïŒ
ã«ã¹ã¿ã ã¿ã€ãã瀺ãã®ã¯ããªãäžåšçšãªæ¹æ³ã®ããã«æããŸãããããŒãäžã®çŸåšã®ã¹ã¯ãªããã眮ãæããããšã§ããã§ã«ååšããã¹ã¯ãªãããæ¡åŒµããã¹ã¯ãªãããåŸããããšããèãã¯èª°ãæãã€ããªããšæããŸãã ããã¯ãã¹ã¯ãªãããä»ããŠæ¡åŒµããæ¹æ³ãåºæ¬ã¿ã€ãã§æ©èœããæ¹æ³ã§ã¯ãããŸããã
ãããŠããŠãŒã¶ãŒããã®ã¹ã¯ãªãããã£ãŒã«ããã¯ãªã¢ãããšã©ããªããŸããïŒ ã«ã¹ã¿ã ã¿ã€ãã¯åã®ã¹ã¯ãªããã«æ»ããŸããããããšãå®å šã«ããŒã¹ã¿ã€ãã«æ»ããŸããïŒ ç¹°ãè¿ããŸãããããã¯è¯ãèãã§ã¯ãªããšæããŸãã
代ããã«ã空ã®ã¹ã¯ãªããã¹ããããç ç²ã«ããããšãªããããŒãããªãŒãŸãã¯ããããã£ãšãã£ã¿ã§ãå¥ã®è²ãã¢ã€ã³ã³ãªã©ãä»ããŠã«ã¹ã¿ã ã¿ã€ããšããŠç€ºãããšãã§ããŸãã
決ããŠèµ·ãããªãã®ã¯ãã€ã³ã¹ã¿ã³ã¹åãããããŒãããã¹ã¯ãªãããæ¶ããããé衚瀺ã«ãªã£ããããããšã§ããããŒããã¹ã¯ãªããåãããŠããããšãæ確ã«ããå¿ èŠããããŸãããã¹ã¯ãªãããè¿œå ãããšããã®ããŒãããç¶æ¿ããã¹ã¯ãªããã«çœ®ãæããããšãã§ããŸãã
ããã§ã®ãã€ã³ãã¯ãã«ã¹ã¿ã ããŒããå®çŸ©ããã¹ã¯ãªããã¯é衚瀺ã«ããå¿
èŠããããšããããšã§ããããã¯ãã«ã¹ã¿ã ããŒãã_instanced_ããŒãã®ããããã£ã§ã¯ãªãããã®ã¿ã€ãã®ããããã£ã§ããããã§ãã ãããã£ãŠããã®ã¹ã¯ãªããã¯ã«ã¹ã¿ã ããŒãã«ããããã£ãä»äžããå¿
èŠããããŸãããçµã¿èŸŒã¿ããŒãã®C ++ã¯ã©ã¹ãšåãããã«ã€ã³ã¹ã¿ã³ã¹åãããããŒãã®ãŠãŒã¶ãŒã«ã¯è¡šç€ºãããªãããã«ããå¿
èŠããããŸãã APIãæäŸããŸãããå€æŽå¯èœã§ã¯ãªããæ¡åŒµå¯èœã®ã¿ã§ãã ã¹ãã©ã€ããã€ã³ã¹ã¿ã³ã¹åãããšããšåãããã«ãã€ã³ã¹ã¿ã³ã¹åãããããŒãã®ã¹ã¯ãªãããšããŠscenes/2d/sprite.cpp
ãã¢ã¿ãããããªãã®ãšåæ§ã«ãã€ã³ã¹ã¿ã³ã¹ã®ã«ã¹ã¿ã ããŒãã®å€æŽå¯èœãªã¹ã¯ãªãããšããŠmy_custom_node.gd
ãã¢ã¿ãããããã¹ãã§ã¯ãããŸããã
ããŠããããæè¡çã«çŸåš_å¯èœ_ã§ãããã©ããã¯ããããŸããããããã¯èªç¶ãªãŠãŒã¹ã±ãŒã¹AFAIUã§ãããã ã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªãããå€æŽãããšãã¿ã€ãèªäœãå€æŽãããããããã®ã¿ã€ãã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã«åœ±é¿ããŸãã ãã ããã«ã¹ã¿ã ã¿ã€ãã䜿çšããã€ã³ã¹ã¿ã³ã¹åãããããŒãã«ã¯ã extends CustomNode
ãšããç¬èªã®ã¹ã¯ãªãããå¿
èŠã§ãã
ãã®æ©èœã«ã¯ããåºæ¬ã«ã¹ã¿ã ã¹ã¯ãªããã¿ã€ãããžã®è¿œå ã®ãã€ã³ã¿ãå¿
èŠã ãšæããŸããããã¯ããªããžã§ã¯ããããŠãŒã¶ãŒã¹ã¯ãªãããåé€ãããšãã«ãã®æ
å ±ãå¿
èŠã«ãªãããã§ãïŒå®éã«ã¯åºæ¬ã¹ã¯ãªããã«çœ®ãæããå¿
èŠããããŸãïŒã
ãããã§ãããããããå€ãã®å¯äœçšãããããå¯èœæ§ãããã®ã§ãæ®ãã¯ãã¹ãŠã®å Žåã«ãããå«ããããšã®åé¡ã§ãã æçµçã«ã¯ãã¹ã¯ãªããã1ã€ã ãæ·»ä»ããããããåŠçããæ¹æ³ãç°ãªããŸãã
ç§ã¯äžè¬çã«ç¶æ¿ã®å€§ãã¡ã³ã§ã¯ãããŸãããããããç§ã®ããæ¹ã§ãã
å®éã«ã¯ããã®ãã€ã³ã¿ã¯å¿ èŠãããŸããã§ããã ã¹ã¯ãªããã«ããŒã¯ãä»ããã ãã§ååã§ããããšãã°ãã¹ã¯ãªããã䜿çšããŠadd_custom_typeïŒïŒãå®è¡ãããšããšã³ãžã³ã¯ã¯ã©ã¹ã«ãã©ã°ãèšå®ããŠãããã®ã¹ã¯ãªããã¯ã©ã¹ã¯ãšã³ãžã³ã¿ã€ãã®æ¡åŒµæ©èœã§ãããªã©ã®æ å ±ãå©çšã§ããããã«ããããšãã§ããŸãã ãŠãŒã¶ãŒã¹ã¯ãªãããåé€ãããšããã«ã¹ã¿ã ã¿ã€ãããšããŒã¯ãããæåã®ç¶æ¿ãããã¹ã¯ãªããã¯ã©ã¹ã«çœ®ãæããããããååšããªãå Žåã¯åé€ãããŸãã
ç³ãèš³ãããŸããããããŒãã«ã¹ã¯ãªãããããå Žåãã¹ã¯ãªãããé衚瀺ã«ããããšã¯ã§ããŸããã äœã§ãã
ããã§ãªãäœããã·ãã¥ã¬ãŒããããã€ã³ãã¯ïŒ
ã¹ã¯ãªããããããšããäºå®ã¯ãã¹ããããããžãŒã§ããããšããã¹ããããå¿
èŠã§ããããšãæå³ãããã®ã§ã¯ãããŸããã
2çªç®ã®ã¹ã¯ãªããã¯ã次ã®ã¹ã¯ãªãããç¶æ¿ããæ°ããã¹ã¯ãªãããç°¡åã«äœæã§ããããã§ãã
æ¢åã®ãã®ã
åæããå Žåãç§ãã¡ã«ã§ããããšã¯ãã·ãŒã³ããªãŒã®ã¹ã¯ãªããã¢ã€ã³ã³ãé衚瀺ã«ããããšã§ãã
å²ãåœãŠãããã¹ã¯ãªããã¯ã«ã¹ã¿ã ã¿ã€ãã®ãã®ã§ãããã¹ã¯ãªãããäœæããŸã
ã¹ã¯ãªããã®äœæãã€ã¢ãã°ã¯ãã¹ã¯ãªããã®äœææã«ç¶æ¿ããããšãèªåçã«æäŸããŸãã
ããã§ååã§ããããïŒ
2016幎8æ10æ¥ååŸ11æ1åããMarcã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
å®éã«ã¯ããã®ãã€ã³ã¿ã¯å¿
èŠãããŸããã§ããã ã¹ã¯ãªãããããŒã¯ãããš
ããšãã°ãã¹ã¯ãªããã䜿çšããŠadd_custom_typeïŒïŒãå®è¡ããå Žåã¯ããšã³ãžã³ã§ååã§ãã
ã¯ã©ã¹ã«ãã©ã°ãèšå®ããŠãæ
å ±ãå©çšã§ããããã«ããããšãã§ããŸãã
ã¹ã¯ãªããã¯ã©ã¹ã¯ãšã³ãžã³ã¿ã€ãã®æ¡åŒµæ©èœã§ããããŠãŒã¶ãŒã¹ã¯ãªãããåé€ãããšã
次ã«ããã«ã¹ã¿ã ããšããŒã¯ãããæåã®ç¶æ¿ãããã¹ã¯ãªããã¯ã©ã¹ã«çœ®ãæããŸã
ãããšå
¥åããããååšããªãå Žåã¯åé€ããŸãã
â
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -239055986ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z2xLGOhgMk__ZoRW1neRu1aRb5Qr_ks5qeoJogaJpZM4JejbZ
ã
@reduzç§ã¯ããã§ååã ãšæããŸãïŒsmileïŒ
@reduzåæããŸããã2çªç®ã®ã¹ã¯ãªãããå¿ èŠã ãšã¯èšããŸããã§ããã æåã®ã¹ã¯ãªããïŒãã©ã°ã€ã³ã«ãã£ãŠå®çŸ©ãããã«ã¹ã¿ã ïŒãç¶æ¿ããã¹ã¯ãªãããè¿œå ãããšã©ããªãã®ããšæã£ãŠããŸããããåé€ããããšã«ããŸããã 次ã«ãã¹ã¯ãªãããªãã§ããŒããåºæ¬çãªãšã³ãžã³ã¿ã€ãã«æ»ããŸããïŒ
ãã®ç¹ã§ãã©ãããããããã£ãšãŠãŒã¶ãŒãã¬ã³ããªãŒã«ããããšãã§ãããšæããŸã
2016幎8æ11æ¥06:10ããMarcã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@reduz https://github.com/reduzåæããŸãããå¿ èŠã ãšã¯èšããŸããã§ãã
2çªç®ã®ã¹ã¯ãªããã ã¹ã¯ãªãããè¿œå ãããšã©ããªãã®ã ãããšæã£ãŠããŸãã
æåã®ãã®ïŒãã©ã°ã€ã³ã«ãã£ãŠå®çŸ©ãããã«ã¹ã¿ã ïŒãç¶æ¿ããŸããããã®åŸã
ãããé€ãã 次ã«ãããŒããåºæ¬çãªãšã³ãžã³ã¿ã€ãã«æ»ããŸãã
ããã§ã¯ã¹ã¯ãªããïŒâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment -239109334ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z26JUJ0gjaCFwlsIDsINWp3_nqliwks5qeubygaJpZM4JejbZ
ã
ãã®ã³ã¡ã³ãhttps://github.com/godotengine/godot/issues/6067#issuecomment-238299152ã§èª¬æãããŠãããã¹ã®ä»£ããã«ãããŒãã§å®çŸ©ãããã¿ã€ãã«ãã£ãŠæ¡åŒµã®äžéšãæãäžã
è¿œå ããããã€ãã®ææ¡ïŒ
äŸïŒ
add_custom_type("MyCustomNode", "Node2D", preload("my_custom_node.gd"), preload("icon.png"))
node.get_type() should return "MyCustomNode" instead of "Node2D"
äŸïŒ
ãŠãŒã¶ãŒAã¯ãNode2Dã«åºã¥ããŠããæ£ç¢ºãªå¯èŠæ§éç¥æ©èœã®ãã©ã°ã€ã³ãäœæããŸãadd_custom_type("PreciseNotifier", "Node2D", preload("precise_notifier.gd"), preload("icon.png"))
次ã«ããŠãŒã¶ãŒBã¯ãå¥ã®æ§æãæã€å¥ã®ã¢ããªã³ãã©ã«ããŒã®æ£ç¢ºãªéç¥æ©èœã«åºã¥ããŠããªã¬ãŒã¢ããªã³ãéçºããŸãã
add_custom_type("Trigger", "PreciseNotifier", preload("trigger.gd"), preload("icon.png"))
ãŸããtrigger.gdã¹ã¯ãªããã§ã¯ãã¿ã€ãåã§æ¡åŒµããå¿
èŠããããŸãextends PreciseAddon
ãã¡ããããŠãŒã¶ãŒã¯ããªã¬ãŒ1ã䜿çšããããã«äž¡æ¹ã®ã¢ããªã³ãè¿œå ããå¿
èŠããããŸã
äžæ¹ã®ã°ã«ãŒãã¯ãã¹ã¯ãªãããªãã§ã«ã¹ã¿ã ããŒãã¿ã€ããããããåºã¥ããŠããã«ã¹ã¿ã ããŒãã¿ã€ããã掟çããŠãããã®ãšããŠå®çŸ©ããããšèããŠããããã§ãããããäžæ¹ã®ã°ã«ãŒãã¯ãããŒã¹ã«æ»ã£ãããŒããšåãã·ããªãªãå®çŸ©ããããšèããŠããŸãããšã³ãžã³ååŒã ç§ã¯åè ã®ã°ã«ãŒãã«å±ããŠããŸãããã«ã¹ã¿ã ã¿ã€ãããŸã ãã¹ã¯ãªããåããããŠãããUIã§ãããæ確ã«ããããšèããŠãããšããç¹ã§ãåŸè ã®ã°ã«ãŒãã®ãã€ã³ããããããŸãã
劥åæ¡ãšããŠãã·ãŒã³ããªãŒããã¯ã®ããŒãã®è¡ã®ã¹ã¯ãªããã¢ã€ã³ã³ã®æšªã«ãããçš®ã®script ++ã¢ã€ã³ã³ãä»ããè¿œå ã®UIãã¿ã³ãé
眮ããããšãèããããŸãã ãããã¯ãªãã¯ãããšãã«ã¹ã¿ã ã¿ã€ããããã§ã«ç¶æ¿ãããŠããã¹ã¯ãªããïŒäŸïŒ extends Base
ãŸãã¯extends "Base"
ïŒãå«ãäžè¬çãª[ã¹ã¯ãªããã®äœæ]ãããã¢ãããŠã£ã³ããŠã衚瀺ãããŸãã 次ã«ãå®çŸ©ãããã¹ã¯ãªãããäœæãããããªã»ãããããã¹ã¯ãªãããäœã§ãããããã«çœ®ãæããããŸãã ãããã£ãŠãããŒãã«æ¢åã®ã¹ã¯ãªãããããããšãæ確ã«ç€ºãããšãã§ããŸããããã®ããªã»ããã¹ã¯ãªãããç°¡åã«çœ®ãæããããã®äœ¿ãæ
£ããã€ã³ã¿ãŒãã§ã€ã¹ããããŸãã
ãã®ææ¡ã¯ãã«ã¹ã¿ã ããŒãããšã³ãžã³å ã®å¯Ÿå¿ããããŒããšã¯å€å°ç°ãªãæ¹æ³ã§åŠçãããããããããçŽæçã§ã¯ãããŸããã èãïŒ
ãã®è°è«ã®åŸåã§2ã»ã³ããäžãããšãåé¡ã¯ãã¢ããªã³ãç¶æ¿ããè€æ°ã®ããŒããããã©ã«ãã§åãå
ã®ã¹ã¯ãªãããå
±æãããšããäºå®ã«ãããšæããŸãã Juanããã®ã¹ã¬ããã®åé ã§è«ããããã«ãã³ãŒãã®å¯èŠæ§ã¯èšèšäžã®éžæã§ãããã¢ããªã³ã䜿çšããŠéçºè
ãããŒãã®åäœãééçã«ããããã«ãéèŠã§ãã ãã ããéåžžã¯ã³ãŒãå
ã®ããŸããŸãªããŒãã®åäœãå€æŽããå¿
èŠããããŸããçŸæç¹ã§å€æŽããå¯äžã®æ¹æ³ã¯ãå
ã®ã¹ã¯ãªããåç
§ãåé€ããæ°ããã¹ã¯ãªãããäœæããŠãããŒã¹ã¹ã¯ãªããã³ãŒããã³ããŒããŠè²Œãä»ããããšã§ãã æ°ããã¢ããªã³ããŒãã®ã¹ã¯ãªãããæ°ãã.gdãã¡ã€ã«ã«save as
ããããšããã§ããŸãããããã«ãããå
ã®ã¹ã¯ãªããã䜿çšããä»ã®ãã¹ãŠã®ããŒããžã®åç
§ãå€æŽãããããããã®3ã¹ãããã®ã³ããŒã¢ã³ãããŒã¹ãããããŸããæé ã®çã
ç¹°ãè¿ãã«ãªããŸãããããã»ã©è€éã§ã¯ãããŸããããã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãGDScriptãšãã£ã¿ãŒã®save as
ãªãã·ã§ã³ãæåŸ
ã©ããã«åäœããªããããããã䜿çšããæ¹ãUIã«é©ããŠãããšæããŸãã GDScriptãšãã£ã¿ãŒã®[ã³ããŒããŠä¿å]ãã¿ã³ã䜿çšãããšãã¢ããªã³ããã°ããã«ã¹ã¿ãã€ãºã§ããŸãïŒã¢ãŒããã¯ãã£ã«é¢ããŠã¯ããã®ãã¿ã³ã衚瀺ããããšã¯ãç¶æ¿ãããã¹ã¯ãªããã䜿çšããã«Godotã§ã²ãŒã ãäœæããããã®åªããã¢ãããŒãã§ããããæå³ããããŸãïŒã
@henriquelalvesã³ãŒãã§ã«ã¹ã¿ã ããŒããã«ã¹ã¿ãã€ãºããããšã¯åºæ¬çã«ç¶æ¿ã ãšæããŸãããïŒ ããšãã°ã extends "addons/thing/thing.gd"
ïŒ ãªãŒããŒã©ã€ãããå
容ãããã£ãŠããå Žåãç¶æ¿ãããã¹ã¯ãªããã¯ãã¢ããªã³ããŒãžã§ã³ãšåãããšãå®è¡ããŸãã ã³ããŒ/貌ãä»ãã®å¿
èŠã¯ãããŸããã
@Zylannããªãã¯æ£ããã§ãããã³ãŒãã®å¯èŠæ§ãšãªãŒãã³ã³ããªãŒãã®çã®ããã«ãéåžžããã®ç¹å®ã®ã¢ãããŒãã¯å¥œãã§ã¯ãããŸããïŒå°ãªããšã2.1ã§ã¯ãç§ã¯ä»ãŸã§ã«ããããã¹ãããŠããŸããïŒã ãããŠãã»ãšãã©ã®å Žåãã¡ãœããããªãŒããŒã©ã€ããããã¯ãããŸãããå
ã®ã¢ããªã³ã¹ã¯ãªããã®æ¡åŒµå€æ°ã§ã¯ãªãç¹å®ã®ãã®ã ããå€æŽããŸãã ããããçŸåšã®save as
ã®åäœã«æ©ãŸãããŠããããšã§ãããã®ãããªã¹ã¯ãªãããžã®ãã¹ãŠã®ããŒãåç
§ãå€æŽããã«ãã¹ã¯ãªããã®ã³ããŒããã°ããäœæããããšã¯ã§ããŸããã UIã«é©ããæ¹æ³ã§ããã解決ãããšãã«ã¹ã¿ãã€ãºããè€æ°ã®ããŒãããããã³ãŒãã®å¯èŠæ§ãªã©ããããšããå
ã®åé¡ã解決ãããŸãïŒå°ãªããšãç§ã®ã¯ãŒã¯ãããŒã§ã¯ãç§ã ãããã®ããã«èããŠããŸãïŒã
@henriquelalvesããç§ã¯tbhxDã®ã³ããŒ/貌ãä»ãã«èããããŸããããŸããããŒãžã§ã³ç®¡çã䜿çšããŠãã©ã°ã€ã³ããã©ãŒã¯ãã代ããã«ããã䜿çšããããšãã§ããŸãã
@Zylann Forkingãã©ã°ã€ã³ã¯ãéåžžã«åçŽãªã¯ãã®äœãã«ããã«å€ãã®ã¹ããããè¿œå ããŠããŸãããããã save as
ã®åäœããããããšã¯æããŸããããããåªå
ãããªãå Žåã¯ãæåã§ã³ããŒããŠè²Œãä»ããããšã«åºå·ãããšæããŸãã
@henriquelalvesã³ããŒ/貌ãä»ãã¯ãã©ãŒã¯ã§ã^^ããããããŒãžã§ã³ç®¡çãªãã§è¡ãããå Žåããã©ã°ã€ã³ãæŽæ°ãããå Žåãå°æ¥çã«ããªããåã¿ãŸãã
ã¹ã¯ãªãããã«ã¹ã¿ã ããŒãã«ã¢ã¿ããããçŸåšã®åäœã§ã¯ãã¹ã¯ãªãããããŒãã«ã¢ã¿ããããã ãã®å Žåãšæ¯ã¹ãŠããã®ã«ã¹ã¿ã ããŒããã¢ããªã³ãšããŠäœ¿çšããã¡ãªããã¯ã»ãšãã©ãããŸããã å¯äžã®å©ç¹ã¯ãããŒããã€ã¢ãã°ã«è¡šç€ºãããããšã§ãããå®éã«ã¯ãŸã£ããå©ç¹ã§ã¯ãããŸããã
ç§ã¯ãã«ã¹ã¿ã ããŒããäžæµã®çµã¿èŸŒã¿åãšåãããã«åäœããå¿ èŠããããšèšã£ãŠãããã£ã³ãã«ããŸãã ãã以å€ã®å Žåã¯ããªãã¢ããªã³ãäœæ/䜿çšããã®ã§ããïŒ ãã€ã¢ãã°ã«è¡šç€ºãããã¹ã¯ãªããã®è¿œå ãã¿ã³ãã¯ãªãã¯ããå¿ èŠããªãããã«ããããã§ããïŒ
@RodeoMcCabeåé¡ã¯ãå éšã§ã¯ãã«ã¹ã¿ã ã¿ã€ãã¯å®éã«ã¯ãšã³ãžã³å ããŒãã®äžã«éå±€åãããã¹ã¯ãªããã§ãããã«ã¹ã¿ã ã¿ã€ãããŒãã¯ãšã³ãžã³ãœãŒã¹ã«çŽæ¥ã³ã³ãã€ã«ãããªããããå€æŽã§ããªãããšã§ãã ç§ãã¡ãè¡ãå¿ èŠãããã®ã¯ããããã®ã¹ã¯ãªããåãããããŒãããŠãŒã¶ãŒã®ç®ã«ãšã³ãžã³å ããŒãã®åäœãã·ãã¥ã¬ãŒãã§ããããã«ããå ·äœçãªäžé£ã®ã¹ããã/æ©èœãçå®ããããšã§ãã äŸãã°...
add_custom_type
ã®äžéšã§ã¯ãããŸããïŒãadd_custom_type
é¢æ°ã«ããŒã«å€ãè¿œå ããããšãå«ãŸããå¯èœæ§ããããŸãã ãããŒãã®äœæããŠã£ã¶ãŒããæŽæ°ããŠãããã«å¿ããŠæœè±¡ã«ã¹ã¿ã ã¿ã€ãã®äœæããããã¯ããå¿
èŠããããŸããã¹ã¯ãªããããªããã®ããã«ããŒããSEEMã«ããŸãã
aã ããŒãã«ã¯ãã·ãŒã³ããã¯ã«ãã¹ã¯ãªããã¯ãã®ããŒãã«ãããŸããã¢ã€ã³ã³ããã£ãŠã¯ãªããŸããã ç©äºãããéæã«ããããã«ããããã代ããã«ãããã¯ã«ã¹ã¿ã ã¿ã€ãã®ããŒãã§ããã¢ã€ã³ã³ãããã¯ãã§ãã ãããã¯ãªãã¯ãããšããŠãŒã¶ãŒã¯ã«ã¹ã¿ã ã¿ã€ããè¿œå ãããã¹ã¯ãªããã«çŽæ¥ç§»åã§ããŸãã ããã¯ãæ²¡å ¥æããå£ããŸããã䜿ããããã®çç±ããå¿ èŠãªç ç²ã«ãªããŸãïŒãã¡ãããå¿ èŠã«å¿ããŠãã«ã¹ã¿ã ã¿ã€ãããŒããã©ã®ããã«æ©èœãããã確èªã§ããããã«ãªããŸãïŒã
bã ã€ã³ã¹ãã¯ã¿ãŒã«è¡šç€ºãããscriptããããã£ã¯ããŠãŒã¶ãŒãã¹ã¯ãªãããããŒãããªãéããããã©ã«ãã§ç©ºã§ãããšè¡šç€ºãããŸããããŒããããå Žåãã¹ã¯ãªããã¯ã«ã¹ã¿ã ã¿ã€ããšããŠäœ¿çšãããã¹ã¯ãªããã¿ã€ããã掟çããå¿
èŠããããŸãã ãã ãããŠãŒã¶ãŒã¯ã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªãããã¡ã€ã«ã®å Žæãç¥ã£ãŠããå¿
èŠã¯ãããŸããïŒã¹ã¯ãªããã§ãããšããæŠå¿µã¯ãŠãŒã¶ãŒããé ãå¿
èŠããããŸãïŒã ã€ãŸããã«ã¹ã¿ã ã¯ã©ã¹ã®æåååã¯ãä»ã®ãšã³ãžã³å
ã¯ã©ã¹ãšåãããã«GDScriptããŒãµãŒã«ãã£ãŠèªèããããïŒãããã©ãã»ã©ç°¡åãé£ãããã¯ããããŸããïŒãã¬ã³ãŒãããã§ããããããã®äœããã®ã°ããŒãã«é¢æ°ãå¿
èŠã§ããã¯ã©ã¹åãããšãã°ã add_custom_type("MyClass", "Node", load(res://addons/git-repo/api/my_class.gd), load(res://addons/git-repo/icons/icon_myclass.svg)
ã®ã¹ã¯ãªããã®å ŽåããŠãŒã¶ãŒã¯extends MyClass
ãŸãã¯extends custom("MyClass")
ã䜿çšããŠã¹ã¯ãªãããäœæã§ããŸãã
cã ãŠãŒã¶ãŒãã«ã¹ã¿ã ã¿ã€ããã掟çããã¹ã¯ãªãããããŒãã«ããŒãããå Žåã«ã®ã¿ãããã®ããŒãã«ã¯ã¹ã¯ãªããããããŸããã¢ã€ã³ã³ãã·ãŒã³ããã¯ã«è¡šç€ºãããŸãã
ã¹ã¯ãªããã«äœ¿çšãããŠãããšãã£ã¿ã¢ã€ã³ã³ã¯ãçŸåšã¹ã¯ãªããã«äœ¿çšãããŠãããã¯ã€ãããã¯ã¹ã®ãããªã¢ã€ã³ã³ïŒ property_editor.cpp
ïŒã§ã¯ãªããã«ããŽãªãããã¯ã«è¿œå ããå¿
èŠããããŸãã ããã¯ãã«ã¹ã¿ã ã¿ã€ãããŒããªããžã§ã¯ãã®__meta__
ãã£ã¯ã·ã§ããªããããã£ã®äžéšã§ããå¿
èŠããããŸãã
Object::get_script()
ã¯ãã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããããããã¹ã¯ãªãããããŒããããŠããªãããŒãã®å Žåã null
ãè¿ãå¿
èŠããããŸããObject::get_property_list
ãããã³ã¡ãœãããšã·ã°ãã«ã®é¡äŒŒé¢æ°ã«ã¯ãããŒããããã¹ã¯ãªããããªãå Žåã§ããã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããã®å
容ãå«ããå¿
èŠããããŸããObject::get_custom_script()
ãªã©ã®2çªç®ã®C ++ãªããžã§ã¯ãé¢æ°ãå¿
èŠã«ãªãå¯èœæ§ããããŸãã&is_valid
åç
§ããŒã«ïŒãå ±åããŠããªããžã§ã¯ãããããå®è¡ã§ãããã©ããã確èªããå¿
èŠããããŸãã ãã®æ
å ±ã«é¢ãããã£ãŒãããã¯ãæäŸããå¿
èŠãããé¢é£ããGodotEditorã·ããªãªããããã説æããããã«æŽæ°ããå¿
èŠããããŸããããã¯è¡šé¢ãå·ã€ããŠããã ãã§ããããŠãŒã¶ãŒãæ¢ããŠããçš®é¡ã®åäœã¯ãããã»ã©åºç¯å²ã«ããããã®ã ãšæããŸãïŒãããã£ãŠãããªãæ¿ããã§ãïŒã å¿ èŠã«å¿ããŠã«ã¹ã¿ã ã¿ã€ãã®ååšã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãïŒãããã£ãŠãããŒãã®è¡ã®ã·ãŒã³ããã¯ã«ã«ã¹ã¿ã ã¿ã€ãã¢ã€ã³ã³ãé 眮ããŠã¹ã¯ãªããã衚瀺ããŸãïŒããèªèã§ããããã«ãã«ã¹ã¿ã ã¿ã€ãã®ååšãå¯èœãªéãé衚瀺ã«ããŸãããšã³ãžã³å ã¿ã€ããšããŠãããã ããããå€ãã®å Žæã§ç©äºãå£ããŠããŸãã®ã§ããããæ£ããè¡ãã«ã¯å€ãã®äœæ¥ãå¿ èŠã«ãªããŸãã
ãã®é³ã®ã©ãããããã§ããïŒ å°ãèããŠããã ããªã®ã§ã足ããªãã¢ã€ãã ããã£ãšãããšæããŸãã ãããããããªããšã«èãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã ;-)
ç·šéïŒãããããããã¹ã¯ãªãããã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªãããšäžèŽããå Žåã«ã·ãŒã³ããã¯ã®ã¹ã¯ãªããã¢ã€ã³ã³ãé衚瀺ã«ãããšããreduzã®ææ¡ã䟡å€ããããããããŸããã ãã ã get_script()
ã¡ãœããã¯ãŸã äœãè¿ããªãã¯ãã§ãã ãªããžã§ã¯ãèªäœã«åå¥ã®ã¹ã¯ãªããããããã£ãäœæããã«ãããè¡ãæ¹æ³ãããã®ã§ã¯ãªãã§ããããã Idkããªããžã§ã¯ãããšã«1ã€ã®ã¹ã¯ãªããã«ã€ããŠãã³ãŒãããŒã¹ã«ã¯ãã§ã«å€ãã®ä»®å®ããããŸããããã¯ç¶æããããšæããŸããã custom_type
ã¹ã¯ãªããã®æŠå¿µã§ã¯ç¶æããã®ãå°é£ã§ãã
è¯ãææ¡ãããèããããã ããããã¹ãŠå®è£ ãããŠããã°ãç§ãã¡ãæ¢ããŠããåäœãåŸããããšæããŸãããããŒãããšã«1ã€ã®ã¹ã¯ãªããã«ãŒã«ãç Žãããšã¯ãã³ãŒãã®äºæããªãå€ãã®éšåã«å ±é³Žããå¯èœæ§ãããæªããã¥ãŒã¹ã«ãªãå¯èœæ§ããããšæããŸãã ç§ã¯ã³ãŒãããŒã¹ãããç¥ãããç§ã®C ++ã¯å¹³å¡ãªã®ã§ãäžç²ã®å¡©ã§ãããåããŸãã Reduzã¯ãå ã ãããŒãããšã«è€æ°ã®ã¹ã¯ãªãããäœæããããšãããããã ãã®äŸ¡å€ãããã®ã¯ãã£ãšé¢åã ã£ãããšè¿°ã¹ãŸãããããã¯ç§ã«ã¯åççã«èãããŸãã
ãã€ã³ã1ãã4ã¯çŽ æŽãããã§ãããããŠç§ã¯1ã¹ã¯ãªããã®ã«ãŒã«ãç Žãããšãªãéæã§ãããšæããŸãã æœè±¡ã«ã¹ã¿ã åã¯ããšã«ããã€ã³ã¹ã¿ã³ã¹åã§ããªããããæããã«åé¡ã«ã¯ãªããŸããããããã£ãŠããŠãŒã¶ãŒã¯ãšãã£ã¿ãŒã§ã¹ã¯ãªãããè¿œå ã§ããŸããã ãã ããã³ãŒããä»ããŠããããããšããå¯èœæ§ããããããå¿ èŠãªãã§ãã¯ãšãšã©ãŒãèšå®ããå¿ èŠããããŸãã
ãã€ã³ã6ãè¯ãã§ãããããŠããã§ç§ãã¡ã¯ããã§éããããšãã§ãããšæããŸãã ãã€ã³ã6ã«åŸã£ãŠæ°ããã¹ã¯ãªãããäœæãããšãã«ã¹ã¿ã ããŒãã«çŸåšæ¥ç¶ãããŠããã¹ã¯ãªãããæ°ããïŒæŽŸçïŒã¹ã¯ãªããã«å€æŽãããŸãã å€ãïŒããŒã¹ïŒã¹ã¯ãªãããããŒãããåé€ãããŸãã æ°ããæ·»ä»ã¹ã¯ãªããã¯å
ã®ã¹ã¯ãªãããã掟çããŠããããããã¹ãŠã®æ©èœãæ®ããŸãã ç§ã¯ãããããè¡ããŸããããã§ã¯ãåºæ¬ã¯ã©ã¹ïŒæœè±¡ã¯ã©ââã¹ãã©ããã«é¢ä¿ãªãïŒãããã掟çã¹ã¯ãªãããããŒãã«ã¢ã¿ããããŸãã ããã§ã®éãã¯ãæ°ããã¹ã¯ãªãããèšã£ãŠãããããããªããšããããšã§ãextends "res://addons/path/to/base-script.gd"
ãšããã ãã§ãã«ã¹ã¿ã ã»ããŒãã®ååããããã«ã¹ã¿ã ã¿ã€ãã¯ãã¯ã....æ·»ä»ãã®ã¹ã¯ãªãããæã£ãŠããããã2çªç®ã®ææ³äžã®ãã remove_custom_type()
ã¯åŒã³åºããããæ·»ä»ãããã¹ã¯ãªããã¯ãŸã å€ãã¹ã¯ãªãããã掟çããŠããã®ã§ãããããããã¯å¿
èŠãããŸãããïŒ ãã®ç¹ã«ã€ããŠæ確ã«ããŠãã ããã
ãã€ã³ã7ã8ãããã³9ã¯é©åã§ããã1ã¹ã¯ãªããã®ã«ãŒã«ãç¶æããªããããããããã»ã©é£ããã¯ãããŸããã 1ã¹ã¯ãªããã«ãŒã«ãç¶æããå Žåã10ã¯å¿ èŠãããŸããã 11ã¯è¯ãã§ããããã¯ãããŒãã¿ã€ããæ¡åŒµããªãã¹ã¯ãªãããçµã¿èŸŒã¿ããŒãã«ã¢ã¿ããããããšããå Žåã«ãçµã¿èŸŒã¿ããŒããã©ã®ããã«åäœãããã瀺ããŠããããã§ãã
ãããã«ãããããã¯å€ãã®äœæ¥ã®ããã«èãããŸãããããŠç§ãã¡ã¯ãã§ã«ããŒã¿çã«ããã®ã§ãããã¯3.1ãŸãã¯3.2ã§ãããããšæããŸãïŒæè¿ããŒãããããèŠãŠããŸããïŒã
@RodeoMcCabeãããããã¯ééããªã3.0ã§ã¯ãããŸããã
ããŒãããšã«1ã€ã®ã¹ã¯ãªããã«ãŒã«ãç Žãããšã¯ãã³ãŒãã®äºæããªãå€ãã®éšåã«å ±é³Žããå¯èœæ§ãããæªããã¥ãŒã¹ã«ãªãå¯èœæ§ããããŸã
ç§ã®èãã¯æ£ç¢ºã«ã ãªããžã§ã¯ããã«ã¹ã¿ã ããã¯ã¢ããã¹ã¯ãªãããèªèããŠããããä»ã®ãªããžã§ã¯ãã¯ãããèªèããããªããžã§ã¯ããåäžã®ã¹ã¯ãªãããæã£ãŠãããšåçŽã«èªèãããããªãã¯ã€ã³ã¿ãŒãã§ã€ã¹ãèããŠããŸãã ç§èš£ã¯ãscriptããããã£ã®ã»ãã¿ãŒãšã²ãã¿ãŒãç·šéããããšã§ãã ã²ãã¿ãŒã¯nullããã§ãã¯ããå¿ èŠããããŸãã nullã®å Žåã¯ã代ããã«ããã¯ã¢ããã¹ã¯ãªãããè¿ãå¿ èŠããããŸãã ã»ãã¿ãŒã¯åæ§ã«ãæ°ããã¹ã¯ãªãããããã¯ã¢ããã¹ã¯ãªãããæ¡åŒµããããšãå確èªããå¿ èŠããããŸããããã§ãªãå Žåã¯ãäœããã®çç±ã§å€±æãå ±åããå¿ èŠããããŸãã
æœè±¡ã«ã¹ã¿ã åã¯ããšã«ããã€ã³ã¹ã¿ã³ã¹åã§ããªããããæããã«åé¡ã«ã¯ãªããŸããããããã£ãŠããŠãŒã¶ãŒã¯ãšãã£ã¿ãŒã§ã¹ã¯ãªãããè¿œå ã§ããŸããã
ã¹ã¯ãªããåŽïŒafaikïŒã«ã¯æœè±¡åã¯ãããŸããã ã¹ã¯ãªãããæœè±¡åããæ¹æ³ãç¥ã£ãŠãããšèšã£ãŠããŸããïŒ can_instance
ã¡ãœããã¯ã¹ã¯ãªããåŽã«å
¬éãããŠããŸãããã¹ã¯ãªããèªäœãæå¹ãã©ãããããŒã«ã®å Žåã¯ScriptServerã§çŸåšã¹ã¯ãªãããæå¹ã«ãªã£ãŠãããã©ããã確èªããã ãã§ãã ã¹ã¯ãªããã¿ã€ãã®æœè±¡æ§ãšã¯äœã®é¢ä¿ããªããšæããŸãã
CreateDialog::_update_search
ã¡ãœãããããã¹ããã°ã¬ãŒè¡šç€º/éžæäžå¯ã«ããã¿ã€ãã³ã°ãªã©ãç¥ãã«ã¯ãã¯ã©ã¹ãæœè±¡ã§ãããã©ããã確èªã§ããå¿
èŠããããŸãã
åèãŸã§ã«ãåé¡ã®æœè±¡çãªéšåã«é¢ããåé¡ãäœæããŸããïŒïŒ13401ïŒã
å
šäœãšããŠã backup_script
ãã©ã€ããŒãã¡ã³ããŒãObject
ã¿ã€ãã«è¿œå ããããã䜿çšããŠscript
ããããã£ãã§ãã¯ãå®è¡ããã°å®è¡å¯èœã ãšæããŸãã
ã«ã¹ã¿ã ããŒãã§è¡ãããšã¯ãããŒã¹ã¹ã¯ãªãããç¶æ¿ããããšã§ããããã«ãããã«ã¹ã¿ã ããŒãã¹ã¯ãªãããããã©ã«ãã§ç©ºã«ãªããŸã...
èªåç¶æ¿ã¯ãã©ã°ã€ã³èªäœã«åœ±é¿ãäžãããã©ã°ã€ã³ãè€è£œããã«è€æ°ãäœæããããšã¯ã§ããŸããããïŒ
ãã«ãã¹ã¯ãªããã¯ä»å¹Ž2åç®ã«è¿œå ãããåã³ç°¡åã«åé€ã§ããŸããïŒè€æ°ã®åé¡ãçºçããŸãïŒã
ã¹ã¯ãªããã®ä»£ããã«ã«ã¹ã¿ã ããŒãã®ããŒã¹ãšããŠã·ãŒã³ãèš±å¯ãããšãã«ãŒãããã¹ã¯ãªããã解æŸã§ããå ŽåããããŸãã
ã«ã¹ã¿ã ããŒãã§è¡ãããšã¯ãããŒã¹ã¹ã¯ãªãããç¶æ¿ããããšã§ããããã«ãããã«ã¹ã¿ã ããŒãã¹ã¯ãªãããããã©ã«ãã§ç©ºã«ãªããŸã...
ç³ãèš³ãããŸããããããã¯ç§ã以åã«è¡ã£ãæœè±¡æ§ããã®ä»ã®ææ¡ã«äœããã®åœ±é¿ãäžãããšèšã£ãŠããŸããïŒ ãããã©ãã«ã€ãªããã®ãããããŸãã...
èªåç¶æ¿ã¯ãã©ã°ã€ã³èªäœã«åœ±é¿ãäžãããã©ã°ã€ã³ãè€è£œããã«è€æ°ãäœæããããšã¯ã§ããŸããããïŒ
ãã©ã°ã€ã³ã/addons/
ãã©ã«ããŒã«2åã€ã³ã¯ã«ãŒããããããžã§ã¯ãèšå®ã®ãã©ã°ã€ã³ã»ã¯ã·ã§ã³ã§äž¡æ¹ãæå¹ã«ãããšãäœããã®åé¡ãçºçããããšãäŒããããšããŠããŸããïŒã€ãŸãããã©ã°ã€ã³ãã«ã¹ã¿ã ãè¿œå ããŠããå Žåã¯ãããªãæ£åžžã«èãããŸãïŒã¿ã€ããåãååã§è€æ°ã®ã«ã¹ã¿ã ã¿ã€ããå®çŸ©ããããšã¯ã§ããŸããïŒã
ããã©ã°ã€ã³ãè€è£œããã«è€æ°ãäœæããããšã¯ã§ããŸããããšã¯ã©ãããæå³ãããããããŸããã ã«ã¹ã¿ã ã¿ã€ãããŒãã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãäœæã§ããŸãïŒïŒïŒãããŒããäœæããå®çŸ©ãããã«ã¹ã¿ã ã¿ã€ãã¹ã¯ãªãããèªåæ¥ç¶ããã ãã ããã§ãã ç§ã®ææ¡ã§ã¯ãCreateDialogã®ã¹ã¯ãªããäœæããã»ã¹ã次ã®ããã«å€æŽããå¿ èŠããããŸã...
backup_script
ããããã£ãšããŠèšå®ããŸãïŒã¹ã¯ãªããAPIã«ã¯å
¬éãããŸããïŒãObject
ã³ãŒãã«ãä»ã®ãã¹ãŠã®äººãã ãŸããŠbackup_script
ããªããžã§ã¯ãã®å
¬åŒscript
ããããã£ãšããŠè¡šç€ºãããã¿ã¹ã¯ãåŠçãããŸãã...ãã以å€ã®...
script
ããããã£ãšããŠæ·»ä»ããŸãããã«ãã¹ã¯ãªããã¯ä»å¹Ž2åç®ã«è¿œå ãããåã³ç°¡åã«åé€ã§ããŸããïŒè€æ°ã®åé¡ãçºçããŸãïŒã
åæããŸãã çŸæç¹ã§ã¯ããã«ãã¹ã¯ãªãããªããžã§ã¯ãã¯æªãèãã ãšæããŸãïŒãšã«ããå®éã«ã¯å¿
èŠãããŸããïŒã ããã¯ç§ãææ¡ããŠããããšã§ã¯ãããŸããã ãããªãã¯ãã¥ãŒã§ã¯ã Object
ã¯ãŸã ã¹ã¯ãªããã1ã€ãããªãã¯ãã§ãããã¹ã¯ãªãããšããŠã®åœ¹å²ãåŒãç¶ãããã¯ã¢ããã¹ã¯ãªãããå©çšã§ããããã«ããããšããå§ãããŸãïŒãããã£ãŠã script
ããããã£ã«èªåèªèº«ãå²ãåœãŠãŸãïŒã¡ã€ã³ã®script
ããããã£ãnull /ã¢ã³ããŒããªã©ã«èšå®ãããŠããå Žåã¯åžžã«ãããã«ãããObjectã¯ã©ã¹ã«å¯Ÿããã³ãŒãããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå€æŽããããšãªãããã«ã¹ã¿ã ã¿ã€ãããããå¹æçã«ãµããŒãã§ããããã«ãªããŸãã 次ã«ããã®ããã¯ã¢ããã¹ã¯ãªããããããã£å°çšã®ã»ãã¿ãŒ/ã²ãã¿ãŒã䜿çšããŠãã³ãŒãïŒ CreateDialog
ã«ã¹ã¿ã ã¿ã€ãã¹ã¯ãªãããå²ãåœãŠãã³ãŒããªã©ïŒã§ãã®ååšãè¿œå ãŸãã¯åé€ã§ããŸãã ãã®ããã«ãããã¯script
ããããã£ã®åäœããªããã€ã³ã§å€æŽãããã®ã§ããããšã³ãžã³ã«å¿
èŠãªå€æŽãæ¯èŒçå°ãªããªããŸãã
ããŒãã®ã³ã³ããã¹ãã¡ãã¥ãŒã®æ°ãããªãã·ã§ã³ã¯ããã®åé¡ã解決ãããšæããŸãããç¶æ¿ãããã¹ã¯ãªããã眮ãæãããããã¯ãçŸåšããç¶æ¿ããããã¹ãŠã®æ€åºãããã¹ã¯ãªãããšãæ°ããã¹ã¯ãªãããã¯ãªãã¯ãããšãã«æåŸã«ãæ°ããã¹ã¯ãªããããå«ããµãã¡ãã¥ãŒãæã€ããšãã§ããŸãããã€ã¢ãã°ã®ãextendsããã£ãŒã«ãã«ã¹ã¯ãªããã®ãã¹ã衚瀺ãããŸãã
ãã¹ã¯ãªããã®çœ®æãšç¶æ¿ããšãã£ã¿ããŒã«ãè¿œå ããã ãã§ãããç°¡åã§ééçã«ãªããŸãããïŒ ã€ãŸããããã¯åé¡ã«ãããŸãããã¢ããªã³ããŒããäœæãããšãã¯ãã¹ã¯ãªããããªããšäºæ³ãããããã§ãããã ããã¢ããªã³ããŒãã¯ãå®éã«ã¯ãããŒãã®äœæããªãŒã«è¿œå ããã«ã¹ã¿ãã€ãºãããããŒãã§ããããŠãŒã¶ãŒã¯ãããç¥ã£ãŠããå¿ èŠããããŸãã UXã®èŠ³ç¹ããïŒç§ã¯å°é家ã§ã¯ãããŸãããïŒãå©äŸ¿æ§ã®ããã«éææ§ãç ç²ã«ããã¹ãã§ã¯ãªããšæããŸãã
@ MarianoGnu @ henriquelalvesã©ã¡ããå®éã«ã¯åãã§ã¯ãããŸããã ãã«ã¹ã¿ã ã¿ã€ããã®æå³ã¯ããšã³ãžã³å ã®ããŒãã¿ã€ããã·ãã¥ã¬ãŒãããŠãããšããããšã§ãã ããã¯ãã¹ã¯ãªããèªäœãåé€ã§ããªãããšãæå³ããŸãã ããŒãã«çµã¿èŸŒãŸããŠããæ©èœã¯ãçŽç²ãªããŒãã®ããã«æ©èœãããããã«Node2Dã®Node2Dããããåé€ã§ããªãã®ãšåãæ¹æ³ã§çµã¿èŸŒãŸããŠããŸãã
äžèšã®Akienã®äººæ°ã®ããè³æã®æçš¿ã¯ãåæ§ã®è©³çŽ°ãã«ããŒããŠããŸãã
ããã§ã®ãã€ã³ãã¯ãã«ã¹ã¿ã ããŒããå®çŸ©ããã¹ã¯ãªããã¯ãã€ã³ã¹ã¿ã³ã¹åãããããŒãã®ããããã£ã§ã¯ãªãããã®ã¿ã€ãã®ããããã£ã§ãããããé衚瀺ã«ããå¿ èŠããããšããããšã§ãã ãããã£ãŠããã®ã¹ã¯ãªããã¯ã«ã¹ã¿ã ããŒãã«ããããã£ãä»äžããå¿ èŠããããŸãããçµã¿èŸŒã¿ããŒãã®C ++ã¯ã©ã¹ãšåãããã«ã€ã³ã¹ã¿ã³ã¹åãããããŒãã®ãŠãŒã¶ãŒã«ã¯è¡šç€ºãããªãããã«ããå¿ èŠããããŸãã APIãæäŸããŸãããå€æŽå¯èœã§ã¯ãªããæ¡åŒµå¯èœã®ã¿ã§ãã
ãç¶æ¿ããããã®ã«ã¹ã¯ãªããã眮ãæããããã®ã容æã«ããããã®ãšãã£ã¿ãŒããŒã«ãäœæããå Žåãããã¯ãã°ãããããšã§ãããã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªãã以äžã®ã¹ã¯ãªããéå±€ã®ã¬ã€ã€ãŒã¯ãæ³å®ãããŠãããããã©ã®æ©èœãèŠãããšãã§ããªãã¯ãã§ãã ãçµã¿èŸŒã¿ãã®åäœãã·ãã¥ã¬ãŒãããŸãã
å®éã gdscript_parser
ããã®ä»ã®ã¹ã¯ãªããã³ã³ãã³ãããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããããã«ããã«ã¯ãã«ã¹ã¿ã ã¿ã€ãæ
å ±ãEditorNode::get_editor_data().get_custom_types()
ã ãã§ãªããClassDBã·ã³ã°ã«ãã³ã«å«ãŸããŠããããšã確èªããã®ãæé©ãªå ŽåããããŸããã¢ãžã¥ãŒã«ã¯ãã®æ
å ±ã«ã¢ã¯ã»ã¹ã§ããŸããããå®éã«ã¯ã¢ã¯ã»ã¹ã§ããã¯ãã§ãã
ã¹ã¯ãªãããå ¬éããããšã«å人çãªåé¡ã¯ãããŸãããããã¯å®éã«ã¯çšèªãšå²åŠã®åé¡ã§ããããªããèšã£ãããšã«ãããšãClassDBã«æ°ããã¯ã©ã¹ãè¿œå ãã代ããã«ãã®ã¯ã©ã¹ã«ã¹ã¯ãªããããããã£ãè¿œå ããããšãã§ããŸããããŒããšã¯ã©ã¹ã¯ãã¡ãœããã®ã¹ã¯ãªãããååšããããšã確èªããã¯ã©ã¹ã®èŠªãåŒã³åºãåã«ããããåŒã³åºãå¿ èŠããããŸãã å¯èœã ãšæããŸãããRC1ããåã«å®è¡ããªãã£ãå Žåã以åã®ããŒãžã§ã³ãšã®äžäœäºææ§ã倱ãããŸãã
@willnationsdevãªãã»ã©ãã«ã¹ã¿ã ã¿ã€ãããšã³ãžã³å ããŒããšããŠæ±ãããããšã«å¿ããåæããããã§ã¯ãããŸããã ç§ã«ãšã£ãŠããšãã£ã¿ãŒã¢ããªã³ã®ã匷åããã¯ãã«ã¹ã¿ã ããŒããšãšãã£ã¿ãŒããŒã«ã®ãããã¯ããäœæãããããgithubãä»ããŠå ±æããããšãããã«ç°¡åã§ãããã«ãããŸãã ãããã®ããŒã«ãšããŒãã¯ãã¹ãŠãå®éã«ã¯ã³ããŒã¢ã³ãããŒã¹ãã§ããã·ãŒã³ãšã¹ã¯ãªããã«ãããŸããããGodotã¯ããã容æã«ããããã«ã¢ããªã³APIãæäŸããŠããŸãã ç§ãæåã«ããã䜿çšãããšããç§ãã¢ããªã³ãã¹ã¯ãªããã¬ã¹ã§ããããšãæåŸ ããŠããŸããããããã¯ãšã³ãžã³èªäœããããããšã³ãžã³å ããŒããšããŠæ±ã£ãŠããããã«èŠããããã§ãããããã¯ã¢ãŒããã¯ãã£ã§ã¯ãªãUXã®åé¡ã§ãã ç§ããããä¿®æ£ãããšæãã®ã¯ïŒ
ç¹°ãè¿ãã«ãªããŸãããç§ã¯ééããªãå°é家ã§ã¯ãªãã®ã§ãã«ã¹ã¿ã ã¿ã€ãã®æåã®ä»®å®ïŒ=ãšã³ãžã³å ããŒãã¯ééã£ãŠããå¯èœæ§ããããŸãã ãŸããããªãã®è§£æ±ºçã¯ç§ããã®ã¹ã¬ããã§èŠãäžã§æãæ確ãªãã®ãªã®ã§ãGodotã®éçºããã®ããã«é²ããã©ããã¯å®å šã«ç解ããŠããŸãã
ç·šéïŒç§ã¯ãããããäžåºŠèªã¿ãŸããããããŠç§ã®ã解決çãã¯åºæ¬çã«ããªãã®æåã®6ã€ã®è§£æ±ºçã®ã¹ãããã§ãããããã
@ henriquelalves @ MarianoGnuç§ã¯ãããã®çµã¿åããã確ãã«å¿ èŠã ãšæããŸãã ã«ã¹ã¿ã ã¿ã€ãã¯ã©ã¹ãClassDBã«è¿œå ããããšã¯ãå¿ é ã®imoã§ãã ããªãããã³ãªã±ã«æã£ãŠãã3ã€ã®ææ¡ãã¹ãŠãæ¬åœã«æããŠããŸãã ç¹ã«ã¢ã€ãã¢2ïŒç§ã®åå¥ã®ã«ã¹ã¿ã ã¿ã€ãã®ã¢ã€ã³ã³ã®ææ¡ãããã¯ããã«åªããŠããŸãïŒã ãããŠããã«ã¹ã¿ã åãšã¯äœãããããçšåºŠééçã§ããããšã確èªããå¿ èŠãããããšã«åæããŸãã ãã©ã³ã¹ãä¿ã€å¿ èŠããããšæããŠããŸããã«ã¹ã¿ã ã¿ã€ããã©ããããããŠãããäœãæå³ããã®ããç解ã§ããããã«ããå¿ èŠããããŸãããã«ã¹ã¿ã ã¿ã€ãããšã³ãžã³ã¿ã€ãã®ããã«æããããããã«ãã§ããéãã®ããšãããå¿ èŠããããŸãã
@willnationsdevãããassetlibããååŸããã«ã¹ã¿ã ããŒãã®ã³ãŒãããããŒã¹ãã¹ã¯ãªããã«ç§»åããŸããã
collision_path_2d-1-modified.zip
ç§ãç®ã«ããåœé¢ã®åé¡ã¯ããã©ã°ã€ã³ãã¹ã¯ãªãããããŒããããã®ã¹ã¯ãªãããäžæã§ãããšããããšã§ããå¥ã®ã«ã¹ã¿ã ããŒããè¿œå ãããšãåãã¹ã¯ãªãããäœæãããŸãã
ããã§ã¯ããã®å Žåãã¹ã¯ãªããã®çœ®ãæãã¯ãã©ã°ã€ã³ã«ãšã£ãŠäœãæå³ããŸããïŒ ïŒå€åäœããªããç§ã«ã¯ããããªãïŒã
ã¹ã¯ãªããã®çœ®ãæãã«åé¡ããªãå ŽåïŒããŒã«ã¢ãŒããããŸããããªãå ŽåããããŸãïŒãã«ã¹ã¿ã ããŒãã®ã¡ãã¥ãŒã«ãã«ã¹ã¿ã ã¹ã¯ãªããã®æ¡åŒµãã®ãšã³ããªãè¿œå ããŠããã®çœ®ãæãããã»ã¹ãå®è¡ã§ããŸãã
@henriquelalves @ eon-sç§ãã¡ã¯åãããšãèããŠãããšæããŸãã ç§ã¯ãããäœãããUXã®åé¡ã§ããããšã«åãçµãã§ããŸãã ãããŸã§ã®ãšãããç§ã¯ãã®ã¢ãããŒãã«éšåçã§ãããªããªããããã¯ç©äºãå¯èœãªéãã·ã³ãã«ã«ä¿ã€ãšæãããã§ããããã¯åžžã«è¯ãIMOã§ãã
ã¹ã¯ãªããã®çœ®ãæãã«åé¡ããªãå ŽåïŒããŒã«ã¢ãŒããããŸããããªãå ŽåããããŸãïŒãã«ã¹ã¿ã ããŒãã®ã¡ãã¥ãŒã«ãã«ã¹ã¿ã ã¹ã¯ãªããã®æ¡åŒµãã®ãšã³ããªãè¿œå ããŠããã®çœ®ãæãããã»ã¹ãå®è¡ã§ããŸãã
æ¡åŒµã¹ã¯ãªããã¯ãã©ã°ã€ã³ã¹ã¯ãªããããç¶æ¿ããå¿ èŠãããã®ã§ãããã眮ãæããããšã¯åé¡ã§ã¯ãªããšæããŸãã ããããç¹°ãè¿ãã«ãªããŸãããç§ã¯ã³ãŒãããŒã¹ã«ããŸã粟éããŠããŸããã ãšã«ãããç§ã¯ç§ã®2ã»ã³ããäžããŸãããç§ã¯ããããæ¬åœã®éçºè ã«ãããä»»ããŸã;ïŒ
@willnationsdevç³ãèš³ãããŸããããç§ã¯æœè±¡çãªãã®ã«ã€ããŠæ··ä¹±ããŸããã ç§ã®ãabstractãåºæ¬ã¯ã©ã¹ã¯ã_initïŒïŒã«printã¹ããŒãã¡ã³ããæã£ãŠããã ãã§ã誀ã£ãŠã€ã³ã¹ã¿ã³ã¹åãããã©ãããæããŠãããŸã...ã
ããã§ãã£ã€ã ã鳎ããããã«ãã«ã¹ã¿ã ããŒãã¿ã€ãã¯ãã«ã¹ã¿ã ã¹ã¯ãªããã®èšå®ãGDScriptã§ã®ååã«ããåç §ãšç¶æ¿ã®æ©èœãã¿ã€ãã®ããŒã¹ã¹ã¯ãªãããåé€ã§ããªããªã©ããšã³ãžã³ã¿ã€ãã®ããã«å®å šã«åäœããå¿ èŠããããŸãã ããã¯ããšã³ãžã³ã«ãã£ãŠå®è£ ãããããŒãã®åäœãæš¡å£ããå éšã®äžè²«æ§ãšäœ¿ãããããä¿é²ããŸãã
ãã«ã¹ã¿ã ãããŒãã§ããããšã瀺ãåé¡ã«é¢ããŠã¯ãããŒãã®ããã«ãã§è¡šç€ºãã®äžã«ããã€ã³ã¹ãã¯ã¿ãŒã®ããããããŠã³ã«ããªããžã§ã¯ãã®ããŒã¹ã¹ã¯ãªãããã¡ã€ã«ã衚瀺ãããšã³ããªãããããšãææ¡ããŸãã ãŠãŒã¶ãŒãšéçºè ã®èŠ³ç¹ããã¯ãããã䜿çšããã ãã§ã«ã¹ã¿ã ããŒãã§ããããšãç¥ã£ãŠããå¿ èŠããããŸãïŒä»ã«èª°ããããžã§ã¯ãã«è¿œå ããŸãããïŒïŒããã«ã¹ã¿ã ãããŒãïŒIMOïŒã®ç®æšã¯ãGDScriptã§åºå¥ã§ããªãåãå®çŸ©ã§ããããã«ããããšã§ããå èµãšã³ãžã³ã¿ã€ãããã
@ Web-eWorksç§ã¯å®éã«ããã«åãçµãã§ããïŒçŸæç¹ã§ïŒãããªãã®éã®äœæ¥ãå®äºããŠããŸãïŒãŸã å°ãæ¹æ³ããããŸãïŒã Objectã¯ã©ã¹ã«ããã¯ã¢ããã¹ã¯ãªãããèšå®ããClassDBã«ã«ã¹ã¿ã ã¿ã€ãã®ã¹ãã¬ãŒãžãäœæããæ°ããAPIã䜿çšããããã«EditorPluginã¡ãœãããæŽæ°ããŸããã ããã§ããé¢é£ããClassDBé¢æ°ïŒ can_instance
ãget_parent_class
ãªã©ïŒãæŽæ°ãããã¹ãŠã®Editor / CreateDialogãæŽæ°ããå¿
èŠããããŸãã
@willnationsdev ClassDBã«ç»é²ãããšããããšã¯ããã©ã°ã€ã³ãäœæãã人ãè¡çªãé²ãããã«ãã¹ãŠã®ã¯ã©ã¹ã«ãã¬ãã£ãã¯ã¹ãä»ããå¿ èŠãããããšãæå³ããããšã«æ³šæããŠãã ãã^^ "
@Zylannãããæ®å¿µãªããããã¯å¿ èŠã§ãããã
ãã®æç¹ã§ããã€ã³ãã£ã³ã°ãšã³ã¢ã®å€æŽã®ã»ãšãã©ãæŽçãããšæããŸãã ä»ããEditorãCreateDialogãEditorHelp / DocDataã¯ã©ã¹ïŒããã³GDScriptã³ã³ãã€ã©ïŒãæŽæ°ããã ãã§ãã
åã«è¿°ã¹ãããã«..ç§ã¯ãŸã ææ¡ããã解決çãè¯ããšã¯æããªãã
å¯èœæ§ãæãé«ãäœããè©Šã¿ãåã«ãç§ã«ç¢ºèªããŠãã ãã
æåŠãããŸããã
2018幎2æ7æ¥20:05ããWillNationsã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@Zylann https://github.com/zylannãããããã¯å¿ èŠã§ãããã
äžéã«ãããã®æç¹ã§ãã»ãšãã©ã®ãã€ã³ãã£ã³ã°ãšã³ã¢ãæŽçãããšæããŸã
å€æŽããŸãã EditorãCreateDialogãããã³ãæŽæ°ããã ãã§ãã
EditorHelp / DocDataã¯ã©ã¹ã«ãªããŸãããâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment-363893711 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z2xIYRcs0BFDqTyiFwqlhQWTqjEZtks5tSgIVgaJpZM4JejbZ
ã
@reduzããŠãç§ã¯ããªãã以åã«æ瀺ããæžå¿µãèæ ®ã«å ¥ããããšããŠããŸããã
ç§ã¯ãããªãçš®é¡ã®ãã«ãã¹ã¯ãªããã·ã¹ãã ãå®è£ ããŠããŸããã ãŸããClassDBã®ClassInfoãªããžã§ã¯ãã«ãªãããŸããã¹ã¯ãªãããäœæããŠããŸããã ãããŸã§ã«è¡ã£ãã®ã¯ãClassDBã®ç¶æ¿éå±€ã«ïŒRefPtrãä»ããŠïŒã¹ã¯ãªãããã¢ã¿ããããããšã ãã§ãã Objectã¯ã©ã¹ã¯ãéåžžã®ã¹ã¯ãªããå²ãåœãŠãããã¯ã¢ããã¹ã¯ãªããã®ç¶æ¿éå±€ã䟵害ããããšããå Žåã«ã®ã¿ããbackup_scriptãã䜿çšããŸãã
ãªãã»ã©..ãã®å Žåã®ãŠãŒã¹ã±ãŒã¹ã¯äœã§ããïŒ
2018幎2æ7æ¥20:32ããWillNationsã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
@reduz https://github.com/reduzãããšãç§ã¯åãå ¥ããããšããŠããŸãã
以åã«æ瀺ããæžå¿µäºé ã説æããŸããç§ã¯ãããªãçš®é¡ã®ãã«ãã¹ã¯ãªããã·ã¹ãã ãå®è£ ããŠããŸããã ç§ãããã§ã¯ãããŸãã
ClassDBã§ã¹ã¯ãªãããClassInfoãªããžã§ã¯ãã«èŠããããŸãã ç§ããããã¹ãŠ
ãããŸã§ã«è¡ãããã®ã¯ãïŒRefPtrãä»ããŠïŒã¹ã¯ãªãããç¶æ¿ã«ã¢ã¿ããããããšã§ãã
ClassDBã®éå±€ã Objectã¯ã©ã¹ã¯ã
éåžžã®ã¹ã¯ãªããå²ãåœãŠã䟵害ãè©Šã¿ãå Žåã¯åžžã«ãbackup_scriptã
ããã¯ã¢ããã¹ã¯ãªããã®ç¶æ¿éå±€ãâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment-363900920 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z2yn68Iy6AgAKJHZ4qImH4UBAm5skks5tSghSgaJpZM4JejbZ
ã
ãŠãŒã¹ã±ãŒã¹ã¯ã誰ããEditorPluginã䜿çšããŠæ°ããã¿ã€ãã®ããŒãããšã³ãžã³ã«å°å
¥ããããããã®ããŒãã®ã¹ã¯ãªããã¿ã€ããç·šéå¯èœã«ããããªãå ŽåïŒãšã³ãžã³å
ã®ã¿ã€ããæš¡å£ããããã«ããŒããšã®å¯Ÿè©±ãæãã§ããå ŽåïŒã§ãã ïŒã ãããã£ãŠãããšãã°ãããã¯ã¢ããã¹ã¯ãªããã®ã¿ã䜿çšããŠããŒãã§get_script()
ãå®è¡ããããšãããšãnullãè¿ãããŸãã set_script(null)
ãå®è¡ããããšãããšãã¹ã¯ãªããã¯ããã¯ã¢ããã¹ã¯ãªããã«èšå®ãããŸãã set_script(a_script)
ãå®è¡ããããšãããšãæ°ããã¹ã¯ãªãããããã¯ã¢ããã¹ã¯ãªããã®ç¶æ¿éå±€ã«ããå Žåã«ã®ã¿ãã¹ã¯ãªãããæ£åžžã«å²ãåœãŠãããŸãã
UXã®å Žåãããã¯ã¢ããã¹ã¯ãªããã®ã¿ãååšããå Žåã¯ãã¹ã¯ãªããã¢ã€ã³ã³ãéæãªã¢ã€ã³ã³ãšããŠãšãã£ã¿ãŒã«è¡šç€ºããäºå®ã§ãã ãã®å Žåãã¹ã¯ãªãããè¿œå ããããã®ãã¿ã³ã¯ããã¹ã¯ãªããã®åé€ããã¿ã³ã§ã¯ãªããã¹ã¯ãªããã®è¿œå ããã¿ã³ã®ãŸãŸã§ããããããã¯ãªãã¯ãããšãã¿ã€ãã®ååãããã¹ãã«äºåå ¥åãããŸãïŒãã ããäœæããå¿ èŠãããå ŽåããããŸãïŒãŠãŒã¶ãŒãã¹ã¯ãªããã®çš®é¡ãGDScript / VisualScriptãªã©ããå€æŽããå Žåã¯ãã¹ã¯ãªãããã¹ãäºåã«å ¥åãããŸãã å¥ã®ã¹ã¯ãªãããå²ãåœãŠããããšãéæãªã¢ã€ã³ã³ã¯åã³äžéæã«ãªããŸãã ãããã®å Žåãã¹ã¯ãªããã¢ã€ã³ã³ãã¯ãªãã¯ãããšãã¢ã¯ãã£ããªã¹ã¯ãªãããœãŒã¹ã³ãŒãïŒä»ã®ã¹ã¯ãªãããååšããªãå Žåã¯ããã¯ã¢ããã¹ã¯ãªããã®ãœãŒã¹ã³ãŒãïŒã«ç§»åããŸãã
ç§ã¯ããã®å©ç¹ãå®éã«ã¯èŠãŠããªãããšãèªããªããã°ãªããŸãããããã§åã³äœã
ããªããèããŠããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ïŒ
2018幎2æ7æ¥20:46ããWillNationsã [email protected]ã¯æ¬¡ã®ããã«æžããŠããŸãã
ãŠãŒã¹ã±ãŒã¹ã¯ã誰ããæ°ããã¿ã€ãã®ããŒããå°å ¥ãããå Žåã§ãã
EditorPluginã䜿çšãããšã³ãžã³ã§ãããã¹ã¯ãªããã¿ã€ãã®
ãã®ããŒãã¯ç·šéå¯èœã§ããå¿ èŠããããŸãïŒããŒããšã®çžäºäœçšã
ãšã³ãžã³å ã¿ã€ãïŒã ãããã£ãŠãããšãã°ãããŒãã§get_scriptïŒïŒãå®è¡ããããšãããš
ããã¯ã¢ããã¹ã¯ãªããã®ã¿ã䜿çšãããšãnullãè¿ãããŸãã ç§ãããããšãããš
set_scriptïŒnullïŒã®å Žåãã¹ã¯ãªããã¯ããã¯ã¢ããã¹ã¯ãªããã«èšå®ãããŸãã ããç§ã
set_scriptïŒa_scriptïŒãè©Šè¡ãããšãæ£åžžã«å²ãåœãŠãããã ãã§ã
æ°ããã¹ã¯ãªãããããã¯ã¢ããã®ç¶æ¿éå±€ã«ããå Žåã®ã¹ã¯ãªãã
èæ¬ãUXã®å Žåãã¹ã¯ãªããã¢ã€ã³ã³ããšãã£ã¿ãŒã«æ¬¡ã®ããã«è¡šç€ºããäºå®ã§ãã
ããã¯ã¢ããã¹ã¯ãªããã®ã¿ãååšããå Žåã¯ãéæãªã¢ã€ã³ã³ã ãã®å Žåã
ã¹ã¯ãªãããè¿œå ããããã®ãã¿ã³ã¯ãã¹ã¯ãªãããè¿œå ãããã¿ã³ã§ã¯ãªãããã¹ã¯ãªãããè¿œå ããããã¿ã³ã®ãŸãŸã§ãã
[ã¹ã¯ãªãããåé€]ãã¿ã³ãã¯ãªãã¯ããŠã¯ãªãã¯ãããšãããã¹ãã«ååãäºåã«å ¥åãããŸã
ã¿ã€ãã®ïŒãã ããã¹ã¯ãªãããã¹ãäºåã«å ¥åããå¿ èŠãããå ŽåããããŸãïŒ
ãŠãŒã¶ãŒãã¹ã¯ãªããã®ã¿ã€ããGDScript / VisualScriptããå€æŽããå Žåã
çãïŒã å¥ã®ã¹ã¯ãªãããå²ãåœãŠããããšãéæãªã¢ã€ã³ã³
åã³äžéæã«ãªããŸãã ãããã®å Žåãã¹ã¯ãªããã¢ã€ã³ã³ãã¯ãªãã¯ãããšã
ã¢ã¯ãã£ããªã¹ã¯ãªããã®ãœãŒã¹ã³ãŒãïŒããã¯ã¢ããã¹ã¯ãªããã®ãœãŒã¹ã³ãŒãã®å ŽåïŒã«ç§»åããŸã
ä»ã®ã¹ã¯ãªããã¯ãããŸããïŒãâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/godotengine/godot/issues/6067#issuecomment-363904934 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AF-Z26oeOMT4HpjzDsX8eygMSeUhbTgVks5tSgurgaJpZM4JejbZ
ã
é«ã¬ãã«ã®ãŠãŒã¹ã±ãŒã¹ã¯ããã©ã°ã€ã³ïŒEditorPluginsãPluginScript / SubModuleã·ã¹ãã ïŒãã絶察確å®ãªãã«ã¹ã¿ã ããŒãã¿ã€ããå®çŸ©ã§ããããã«ããããšã§ãã çŸåšãã«ã¹ã¿ã åã·ã¹ãã ã¯ãããŒãäžã®ã¹ã¯ãªãããã®ã·ã³ãã¡ã¯ããªã§ãããæ°ããããŒãã¿ã€ããæ§ç¯ããããšãããšãã¯ãŒã¯ãããŒãšäœ¿ããããã®åé¡ãå€æ°çºçããŸãããã®äžã§æãå°ãªãã®ã¯ãç°¡åãçŽæçãå¹æçã«å®å šã«æ©èœããªãããšã§ããã«ã¹ã¿ã ããŒããã²ãŒã ãã¬ã€ã³ãŒãã§æ¡åŒµããŸãïŒçµã¿èŸŒã¿ããŒããšã¯ç°ãªããŸãïŒã ããå·®ãè¿«ã£ãåé¡ã¯ãä»ã®ã«ã¹ã¿ã ããŒãããç¶æ¿ããã«ã¹ã¿ã ããŒããäœæã§ããªãããšã§ãã
ããã€ãã®ç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã¯ãäœã¬ãã«ã®ããŒããäœæããããšã§ãããããããç Žå£å¯èœãªå°åœ¢ãala MinecraftããŸãã¯ããŒãã³ã°ãã¥ãŒã/ãã¥ã¢ã«ã³ã³ã¿ãŒã䜿çšãããã®ä»ã®å°åœ¢ã·ã¹ãã çšã®ããŒãã³ã°ãã¥ãŒãããŒã¹ã®ãã¯ã»ã«GridMapå®è£ ã§ãã ã«ã¹ã¿ã ã³ã³ãããŒã«ã¿ã€ãïŒå€ãã®ææ°ã®ã²ãŒã ã§å®è£ ãããŠããå圢ã¡ãã¥ãŒã³ã³ããããšã³ãžã³ä»æ§ã®ç¯å²å€ã«ãªãã»ã©é«ãä»»æã®ã¿ã€ãã®äœã¬ãã«ã³ã³ãããŒã«ïŒã ãããŠãæ°ããããŒããç»é²ãããã©ã°ã€ã³ãæ§ç¯ãããå Žæã ãããã®åã±ãŒã¹ã§ã¯ãéåžžãã²ãŒã ãã¬ã€ã³ãŒããåŠçããã«ã¹ã¿ã ã¹ã¯ãªãããè¿œå ããããããå®è£ ãã³ãŒãïŒGDScript / GDNativeã§èšè¿°ïŒãšã¯å¥ã«ããå¿ èŠããããŸãã
ããã§äŒããããŠããªãã®ã¯ããšã³ãžã³ã¢ãžã¥ãŒã«ãèšè¿°ããŠã³ã³ãã€ã«ããªããŠããã«ã¹ã¿ã ããŒãããšã³ãžã³ããŒãã®ããã«åäœãããããšãç®æšã ãšæããŸãã
ãã®æ¹åã¯ãå¿ ãããç¹å®ã®æ©èœïŒå€ãã¯ãããŸããïŒã«ãã£ãŠæšé²ãããã®ã§ã¯ãªãããçŸåšã®æ¹æ³ã¯åŸé²çã§ãèã£ãºãã§ãéå±ã§ããããšããè«ççæ ¹æ ã«ãã£ãŠæšé²ãããŸãã ãã®ã·ã¹ãã ãå®å šã«å®è£ ãããšããšã³ãžã³ãåã³ã³ãã€ã«ããªããŠããGDScript / GDNativeãããšã³ãžã³ã®çµã¿èŸŒã¿åãæ¡åŒµããéåžžã«åŒ·åãªæ¹æ³ãå¯èœã«ãªããŸãã èšèšã®èŠ³ç¹ããã¯ãããã¯æåéãçŸåšã®ã·ã¹ãã ããŸã£ããã«æ¹åãããã®ã§ãã
ãã®åŸãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ãå¿
èŠãªå ŽåïŒãã©ã°ã€ã³å
šäœ/ AssetLibraryãšã³ã·ã¹ãã ã
ãããããã®å€æŽã«ããã¡ãªããã®ç¯å²ã§ãã
ããŠãããã«æ瀺çãªäŸããããŸãïŒ
äœæ¥äžã®ãã©ã°ã€ã³godot-skills
ããããŸããããã«ãããããŸããŸãªæ°ããã¿ã€ãã®ããŒããå°å
¥ãããŸãã
å¹æïŒãã¡ã³ã¯ã¿ãŒã®ããªãã
ã¿ãŒã²ãã¿ãŒïŒäŒŒãŠããŸãããä»ã®ããŒããèŠã€ããŠåéããã ãã§ã
ã¹ãã«ïŒã¿ãŒã²ãã¿ãŒãšãšãã§ã¯ãã®éå±€ãçµã¿åãããŠããŒããèŠã€ããããããã¹ãŠã«ãšãã§ã¯ããé©çšããŸã
SkillUserïŒããã€ãã®ã¹ãã«ããææãããŠãã
ãããã®åããŒãã¯ããŠãŒã¶ãŒãäœæããŠã·ãŒã³ã«çŽæ¥è¿œå ã§ãããã®ã«ããããšæããŸãã ãã ãããããã®ããŒãã¯ãã¹ãŠãåºæ¬ã¿ã€ããšããŠæ©èœããããã«èšèšãããŠããŸãã ããã«äœ¿çšã§ããæ©èœã¯å€ããªãã掟çã¹ã¯ãªãããããŒãã«é 眮ããå¿ èŠããããŸãã ãã®ãããªãŠãŒã¹ã±ãŒã¹ã§ã¯ããŠãŒã¶ãŒãç¹å®ã®ã¹ã¯ãªããæ©èœã®ã»ãããåé€ã§ããªãããã«ããããŒããäœæãããšäŸ¿å©ãªå ŽåããããŸãã ããšãã°ããŠãŒã¶ãŒãã·ãŒã³ã«è¿œå ããTargeterããŒãã«Targeterãã掟çããŠããªãã¹ã¯ãªãããé 眮ããªãããã«ããŸãã ããã¯ãã¹ãã«ãã¿ãŒã²ãã¿ãŒãåãšããŠæã€ããšã§åŸãããã€ã³ã¹ã¿ã³ãæ©èœãããããã§ãïŒArea2Dããã³CollisionShape2DããŒããšåæ§ïŒã
çŸåšã®ã¯ãŒã¯ãããŒã§ã¯ããŠãŒã¶ãŒã¯...
ãã®ã·ã¹ãã ã§ã¯ãããããã¹ãŠã次ã®ãã®ã«çœ®ãæããããšãã§ããŸãã
ãŠãŒã¶ãŒã¯ããšã³ãžã³å ã¿ã€ãã掟çãããç¬èªã®ã«ã¹ã¿ã ã¿ã€ããåçã«è¿œå ã§ããŸãïŒäœ¿ãããããåäžãããããïŒã ãŸããåé¡ã®ããŒãã«ã¹ã¯ãªããåãããæ©èœã®ååšã匷å¶ããããšã«ããããã©ã°ã€ã³ã®æ©èœã®ã»ãã¥ãªãã£ã匷åããŸãã çŸåšããŠãŒã¶ãŒã¯ã¹ã¯ãªãããç°¡åã«åé€ããŠåé¡ã解決ã§ããŸãïŒæãŸãããããŸããïŒã ããã«ã誰ããããŒãäžã®ã¹ã¯ãªããããã¯ãªã¢ããããå Žåããã®ããŒãã¯ãã®ã«ã¹ã¿ã ã¿ã€ãæ©èœã倱ãã¹ãã§ã¯ãããŸããïŒããã¯å€§ããªãã®ã§ãïŒã ã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããã䜿çšããããã«æ»ãå¿ èŠããããŸãã
ããŠãæŽæ°ããŸãã ç§ã¯çŸåšæ¬¡ã®ãã®ãæã£ãŠããŸãã
ClassDB
ã¯ãã«ã¹ã¿ã åãçŽæ¥è¿œå ããã³åé€ã§ããããã«ãªããŸãããEditorPlugin
ã«ã¯ãã«ã¹ã¿ã ã¿ã€ãã ãã§ãªããã¢ã€ã³ã³ãªã©ã®ä»ã®ãšãã£ã¿ãŒé¢é£ããŒã¿ãè¿œå ããã³åé€ããåæ§ã®ã«ã¹ã¿ã ã¿ã€ãã¡ãœããããããŸãã ãããã®ã¡ãœããã¯ã EditorPlugin
ãã¢ã¯ãã£ã/éã¢ã¯ãã£ãã«åãæ¿ãããã³ã«çºè¡ãããæ°ããã·ã°ãã«ã«æ¥ç¶ãããŠããŸããset_custom_script(RefPtr());
ã§ã¯ãªã¢ããå¿
èŠããããŸããproject.godot
ãã¡ã€ã«ã«ã¯ãã¹ãŠã®ã«ã¹ã¿ã ã¿ã€ããå
¥åãããŠãããããå®è¡ãããã²ãŒã ã¯ãã²ãŒã ã®æ®ãã®éšåãéå§ããåã«ãããããmain.cpp
ã«èšå®ã§ããŸããå®äºããå¿ èŠã®ããæ®ãã®ã¿ã¹ã¯...
script_create_dialog.cpp
ã®[ç¶æ¿]ãã£ãŒã«ããç·šéã§ããªãããã«ããå¥ã®ãã°ãå®å
šã«ä¿®æ£ããŸãã*ç§ã¯å®éã«ããã«ã€ããŠããã€ã質åããããŸãã
ãŸããGDScriptLanguageã¯ã©ã¹ããã°ããŒãã«ãåé€ããæ段ããªããŠãã gdscript_compiler.cpp
ãã¡ã€ã«ã«add_global_constant
/ _add_global
ãã衚瀺ãããŸããã ã·ã³ã°ã«ãã³ãè¿œå ãŸãã¯åé€ããããã³ã«ãå®å
šã«ååæåãããã ãã§ããïŒ ã°ããŒãã«èå¥åã¯ã©ã®ããã«åçã«ç·šéãããŸããïŒ ããã¯ããŠãŒã¶ãŒãæåã«ã¹ã¯ãªãããå€æ°ã«ããŒãããªããŠãMyNode.static_func()
ãå®è¡ã§ããããã«ããããã§ãã
ç§ãããã«åãçµãã§ããéãGodotã®GDScriptã¯ãç¹ã«ãã®å€æŽã®äžéšãšããŠãåå空éã®å°å
¥ãã倧ããªæ©æµãåããããšãã§ãããšæããŠããŸãã ãããã«ãã©ã°ãç«ãŠãé©åãªåºåãæåãèŠã€ããå¿
èŠããããŸãããç¬èªã®ã¹ã¯ãªãããäœæãããšãã«ããšã³ãžã³ãšãã©ã°ã€ã³ã®ã¿ã€ãããã®ååã®è¡çªã«é¢ããæžå¿µãåãé€ãããšãã§ããŸãã ããšãã°ã \
ãéžæã®åºåãæåã§ãããšä»®å®ããŸã...
extends Node # an in-engine type.
extends \ # triggers an error if left alone, but would prompt a dropdown of the plugin API names for auto-completion as well as the names of any scripts in the current project that are not part of a plugin.
extends \MyPlugin\ # triggers an error if left alone, but would prompt a dropdown of the scripted types that exist for the plugin
extends \MyNode # extends my_node.gd somewhere in res://
extends \MyPlugin\MyNode # extends my_node.gd somewhere in res://addons/[my_plugin_something?]/
func _ready():
print(\MyNode.CONSTANT) # would print CONSTANT in the current project's my_node.gd script
ãšã«ããããã®^ã®ãã¹ãŠã¯ãçŸæç¹ã§æããããããŠããã¢ã€ãã¢ã«ãããŸããã åå空éãå°å
¥ãããå Žåã¯ã EditorNode
ã®resource_saved
ã·ã°ãã«ã䜿çšããŠããã¡ã€ã«åã«åºã¥ããŠã¹ã¯ãªãããèªåçã«ååã«é¢é£ä»ããããšãã§ããŸãã ãããã¯å¿
ãããã«ã¹ã¿ã ã¿ã€ãã§ããå¿
èŠã¯ãããŸãããïŒãªããžã§ã¯ãããã¹ã¯ãªãããåé€ã§ããªããšããæå³ã§ïŒãååã ãã§ã¢ã¯ã»ã¹ã§ãããããéåžžã«äŸ¿å©ã§çŽæçã§ãã ã¹ã¯ãªããã¯ãåå空éã®ã¿ã€ãã«ãäžéšã«æäŸããããšã§ãããã©ã«ãã®èªååœåïŒ filename.capitalize().replace(" ", "")
ïŒïŒããªãŒããŒã©ã€ãããããšãã§ããŸãïŒäŸïŒ \MyPlugin\mynode
ã çªç¶ãã\ MyPlugin \ mynodeãããã®ã¹ã¯ãªããã®ã°ããŒãã«èå¥åã«ãªããŸããã
ãããç§ã®ãããŸã§ã®é²æç¶æ³ã®æç²ã§ãã
@willnationsdevã¯\
ãéžæããªãã§ãã ãããããã¯ããšã¹ã±ãŒããšãã«ãã©ã€ã³ã«ãã§ã«äœ¿çšãããŠããŸãã .
ã :
ãŸãã¯::
ã®æ¹ãèŠæ ããããŸãã
@Zylannãããžã§ã¯ãã«è¿œå ãããããŒãã®ãã¬ãã£ãã¯ã¹ãšããŠãåºåãæåã䜿çšããããšãèšç»ããŸããã ãããã£ãŠãããšãã°ã res://container.gd
ã®ã¹ã¯ãªããã¯ãå®éã®Container
ã¯ã©ã¹ãšã®è¡çªãæãã§ããŸããã ããªãªãïŒãïŒã䜿çšãããšã次ã®ããã«ãªããŸãã
var engine_type = Container.new()
var script_type = .Container.new()
var plugin_script_type = .MyPlugin.Container.new()
誰ãããã®çš®ã®ãã©ãŒãããã«ç°è°ãå±ããŠããŸããïŒ
ç·šéïŒ
掟çã¯ã©ã¹é¢æ°å ã§åé¡ãçºçããå¯èœæ§ããããŸããã掟çã¯ã©ã¹é¢æ°å ã§èŠªã®ã¡ãœãããåŒã³åºãããŸãã
func _virtual_method():
._virtual_method() # parent stuff
# my stuff
ããŒã...ããã¯å®æ°ãå€æ°ã«åé¡ãåŒãèµ·ãããŸããïŒ ããã§ãªãå Žåã¯ãæ¬åŒ§ã¯ã¹ãŒããŒé¢æ°ã§ããããšãæå³ããããã§ãªãå Žåã¯åå空éèå¥åã®å¯èœæ§ããããšèŠãªãããšãã§ããŸãã
æ£çŽãªãšãããç§ã¯ä»ã®ãšããåå空éãä¿çããŸã-ããã¯åŸã§å°å ¥ãããå¯èœæ§ããããç§ã¯ãããã§ããã ãæ©ãçŸåšã®ã·ã¹ãã ãå°å ¥ããããšæããŸãã ãŸããèªåååç»é²ã«ã¯_æ¬åœã«_ããèããããã·ã¹ãã ãå¿ èŠã§ããããã¯ãã¢ããªã³ã®çµç¹æ§é å šäœã®äœãçŽãã«ãŸã§åã¶å¯èœæ§ããããŸããããã¯ããªãã®éã®äœæ¥ã§ããããã®åé¡ã®ç¯å²ãè¶ ããŠããŸãã
å人çã«ã¯ããèªåç»é²ãã¹ã¯ãªããã®ååã¯ããã¡ã€ã«å ã®å®£èšã«ãã£ãŠå¶åŸ¡ããããšæããŸãã
register <NAME> extends <PARENT>
ãŸãã¯ãGDScriptã«ãã§ã«ååšããçŸåšã®extend <NAME>
ããããŒã°ã«åºã¥ãåæ§ã®æ§æã
ç·šéïŒèŠªïŒããšãã°SpatialïŒããã«ã¹ã¿ã ã®åïŒããšãã°Sprite3D-> CustomTypeïŒã«æŽŸçããã¹ã¯ãªããã®å²ãåœãŠãã©ã®ããã«åŠçãããã®ãã«ã€ããŠã質åããããšæããŸãã ããã¯ãã§ã«ãšã³ãžã³ã¿ã€ãã§æ©èœããŠãããå²ãåœãŠãããã¹ã¯ãªãããã«ã¹ã¿ã ã¿ã€ãèªäœãã掟çãããããã«å¶éããŠããããŸãæ©èœããŸããã
@ Web-eWorksãŸããŸãã çŸåšã®APIã®å®æã«åãçµã¿ãPRãéä¿¡ãããããåå空éã®æ°ããåé¡ãéããŸãã
@ Web-eWorksã®æå³ãããç解ããŠããã°ãç§èªèº«ããã®è³ªåããããŸãObject
ã1ã€ã®ã¹ã¯ãªããããæãŠãªããšããäºå®ãã©ã®ããã«åé¿ããŸããïŒ ãããã¯ã©ã®ããã«...ãã¹ã¯ãªããå¯èœãã«ãªããŸããïŒ ãããšã¯å¥ã«ãClassDBãžã®ç»é²ã¯ãããã°ã©ããŒããã¶ã€ããŒã«ãšã£ãŠã®äœ¿çšãšããç¹ã§ã¯ãã°ããŒãã«èå¥åã«ãããŸããã
@Zylannãã©ãŒã¯ã§è¡ã£ãããšã¯ã$ïŒ Object
ã®custom_script
ããããã£ãäœæããããšã§ãã å€ãå²ãåœãŠãããŠããå Žåã«ã®ã¿éèŠã«ãªããŸãããã¹ã¯ãªãããå²ãåœãŠãããŠããå Žåã¯ãã¡ã€ã³ã®script
ããããã£ã®ããã¯ã¢ããã¹ã¯ãªãã/å¶çŽãšããŠæ©èœããŸãã script
ãã¯ãªã¢ãããšã custom_script
ã«èšå®ãããæ°ããScript
ãscript
ã«å²ãåœãŠããšã Script
ã®å Žåã«ã®ã¿æ£åžžã«å²ãåœãŠãããŸãã custom_script
ãã掟çããŸãã ãããŠãããããã¹ãŠã¯èå°è£ã§Object
ã«ãã£ãŠç®¡çãããŠããããããšã³ãžã³ã«é¢ããéãã Object
ã«ã¯ãŸã å®éã®ã¹ã¯ãªããã1ã€ãããããŸããã
ClassDBã³ã³ãã³ãã«ã¯ãç»é²ãããã«ã¹ã¿ã ã¿ã€ãã®ã»ã«ã³ããªãããããããã¹ã¯ãªããèªäœãšãã®ä»ã®æ
å ±ããå²ãåœãŠãååã«ãããã³ã°ããŸãã 次ã«ããã®ååãšãã®ç¶æ¿éå±€ã«ãé¢é£ããç¶æ¿ã¡ãœããïŒ get_class_list
ã is_parent_class
ã get_parent
ãªã©ïŒãæäŸããŸãã ãããŠãããã¯ããã€ãã®ã¡ãœããã®ãªããã€ã³ãã©ã°ãšããŠè¡ãããŸãã get_class_list
ã¯ã2çªç®ã®ãã©ã¡ãŒã¿ãŒãšããŠtrue
ãæž¡ããå Žåã«ã®ã¿ãã«ã¹ã¿ã ã¿ã€ããå«ãããŒã«ãã©ã°ãååŸããããã«ãªããŸããã ããã«ããããšã³ãžã³ã®ä»ã®éšåãšã®äºææ§ãæãªãããã®ãé²ãããšãã§ããŸãã
@willnationsdevã§ã¯ãã¹ã¯ãªãããçµã¿èŸŒã¿ã¯ã©ã¹ã®ããã«åäœãããã·ã¹ãã ã§ã¯ããŠãŒã¶ãŒããã¹ãŠã®ã¹ã¯ãªãããšã¢ããªã³ãçµã¿èŸŒã¿ã¯ã©ã¹ã®ãããªäžçŽåžæ°ãšèŠãªããŠããæãªããã®ãæ¹æ³ãæ¡çšããããšã劚ããŠããã®ã¯ãªãã§ããã
ããã ã¹ã¯ãªãããçŸåšæ©èœããæ¹æ³ã¯ã extends Node
VBoxContainer
ã«é
眮ã§ããããã§ãåé¡ãªãæ©èœããããšã§ãã çŸåšã®å®è£
ãã«ã¹ã¿ã ã¿ã€ãã®åäœãå£ãå Žåãããã€ãã®åé¡ãçºçããŸã-ãšã³ãžã³ã¿ã€ãããçŽæ¥æŽŸçãããéåžžã®ãã¹ã¯ãªããã䜿çšããªãããã«ã¹ã¿ã ã¹ã¯ãªããã®åäœãç¶æããæ¹æ³ã¯ãããŸããïŒ
@Zylannã ãããããåå空éãå°å ¥ããŠãã¹ã¯ãªãããšãã©ã°ã€ã³ã®ã¹ã¯ãªããããšã³ãžã³å ã®åãšè¡çªããããšãªãååãä»ããŠå®å šã«çµ±åã§ããããã«ãããã®ã§ãã 人ã ãæ°ããæ¹æ³ã ãã䜿çšããå€ãæ¹æ³ãç¡èŠããããšã劚ãããã®ã¯äœããããŸããã ãããŠãç§ã¯å®éã«ãããå šäœçã«è¯ãã ãããšæããŸãã æ¯åæ瀺çãªãã¹ã䜿çšããå¿ èŠãããã®ã¯é¢åã§ãã
@ Web-eWorksããã§ãã©ããŒããŠãããã©ããã¯ããããŸãããã...
ã«ã¹ã¿ã ã¿ã€ãã¯ãç¹ã«ç¶æ¿çšã®ãšã³ãžã³å
ã¿ã€ãã®ããã«æ©èœããŸãã ãããã£ãŠãã«ã¹ã¿ã ã¿ã€ãããæ¡åŒµããå Žåã¯ããšã³ãžã³å
éå±€ã®å®å
šã«ç°ãªããã©ã³ãããæ¡åŒµãããã®ããã«ãªããŸãã å
ã ç§ã¯ã«ã¹ã¿ã ã¿ã€ãäœæããå ŽåMyNode
æ¡åŒµNode
ãç§ãäžã§ãã®ã¹ã¯ãªããã眮ãããšãã§ããªããªããŸãVBoxContainer
ç§ã¯çœ®ãããšãã§ããªãã ãã®ããã«Node2D
"on" VBoxContainer
ã ããã¯å®éã«ã¯æå³ãããåäœã«ãªããŸãã
ããã§ãåå空éã®æŠå¿µã䜿çšãããšãã«ã¹ã¿ã ã¿ã€ãã§ã¯ãªãååä»ãã¹ã¯ãªãããçæ³çã«ãªããŸãã ãããã£ãŠããã®å Žåã Node
ãæ¡åŒµããã¹ã¯ãªãããäœæãããããNode
ã VBoxContainer
ããã³MyNode
ãŸãã ããã¯çã«ããªã£ãŠããŸããïŒ
ã€ãŸããç§ãèšã£ãŠããã®ã¯ãããšãã°MeshInstance
$ãç¶æ¿ããã«ã¹ã¿ã ã¿ã€ãMyNode
ãäœæãããã®ããŒãããšãã£ã¿ãŒã§ã€ã³ã¹ã¿ã³ã¹åããŠã Spatial
ãç¶æ¿ããã¹ã¯ãªãããè¿œå ããããšããå Žåã§ãã MyNode
åã®ããŒãã«ãããã¯æ£ããæ©èœããŸããïŒ ããã¯ããšã³ãžã³ãããŒãã§é©åã«æ©èœããããããšãã¥ã¬ãŒãããå¿
èŠã®ããåäœã§ãã
ããã¯ãããŠãŒã¶ãŒã¬ãã«ãã¹ã¯ãªããã®ç¶æ¿éå±€ã®ãã€ã³ãã«é¢ä¿ãªããã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªãããåŒã³åºãããããã«ããããã®åé¡ã§ãããããåå空éã«äŸåããªãå¿ èŠããããŸãã
@ Web-eWorksã¯ããããã§ããŸããããŸãã ClassDB
ã®custom_types
ãããã®ãã¹ãŠã®ã第1ã¬ãã«ããšã³ããªã¯ã$ classes
ãããã®ã¿ã€ãã«ãªã³ã¯ãçŽãå¿
èŠããããŸããããããªããšããšã©ãŒãçºçããã«ã¹ã¿ã ã¿ã€ãã¯ãããŸãããäœæãããŠããŸããã ããã«ãããã«ã¹ã¿ã ã¿ã€ãããObject
ãŸã§ã®ãšã³ãžã³ã¿ã€ãã«æ»ããšãã«ãç¶æ¿ã®ãã§ãŒã³ãç¶æãããŸãã
@willnationsdev念ã®ããã«èšã£ãŠãããŸããã$ïŒ MyNode
ã«_ready
ã¡ãœãããè¿œå ããSpatialãã掟çããæºåå®äºããŒãããŠãŒã¶ãŒã¹ã¯ãªããã«è¿œå ãããšã Spatial._ready(), MeshInstance._ready(), MyNode._ready(), script._ready()
ã®ããã«åŒã³åºãããŸãã ïŒ ïŒãŸãã¯ã _ready
ããã£ã¹ãããããã泚æãïŒ
ç§ã¯ãããã¯äžå¿ èŠã§æ··ä¹±ãæããã®ã§ãããšããç§ã®èŠè§£ãä»ã§ãæ¯æããŠããŸãã ãã®åé¡ã¯ãã³ã¢ãšã³ãžã³ã§ã¯ãªãããšãã£ã¿ãŒUIãã解決ããå¿ èŠããããŸãã
@reduzããã¯ããšãã£ã¿ãŒUIã ãã§è§£æ±ºã§ãããã®ã§ã¯ãããŸããã ãªããžã§ã¯ãã«å¯ŸãããŠãŒã¶ãŒã®ã¹ã¯ãªããæäœãå¶åŸ¡ãããå Žåã¯ããã§ã¯ãããŸããã ããã¯å€ãã®äººãã»ããã¢ããããããšæã£ãŠããæ©èœã®ããã«æããŸãã
ã¹ã¯ãªããåã®æ°ããã°ããŒãã«èå¥åãèšå®ããããã«ãgdscript_compilerãEditorDataã®ã³ã³ãã³ããåç §ããå¿ èŠãããããšãææ¡ããŠããŸããïŒClassDBã§ãã¹ãŠã远跡ããClassDBããšã³ãžã³å ã®ãã¹ãŠã®ç¶æ¿æ å ±ã管çã§ããããã«ããã®ã§ã¯ãããŸãããïŒ
確ãã«ããšãã£ã¿ãŒUIã®èŠ³ç¹ãã解決ããå¿ èŠã®ããéšåããããŸãããã³ã¢ã§è§£æ±ºããå¿ èŠã®ããéšåããããŸãã ãšã³ãžã³ã«ã«ã¹ã¿ã ã¿ã€ããè¿œå ããããšã¯ãClassDBã®èŠ³ç¹ããã¯_actual_ã¿ã€ãã§ãããéåžžã«åŒ·åã§ãæçµçã«å¿ èŠãªæ©èœã§ãã çŽããããéããç§ã¯ãããçŸåšã®ã·ã¹ãã ãããæ··ä¹±ããããšã¯ãªãããããããããããå°ãªããšäž»åŒµããŠããŸãã
@ Web-eWorksåæããŸãã ç¶æ¿ããŒã¿ããšãã£ã¿ãŒã§è¿œè·¡ããããšã¯ãç§ã®æèŠã§ã¯å®éã«ã¯ã¯ããã«æ··ä¹±ããŸãã ãŸãããšãã£ã¿ãŒãªãã§ã²ãŒã ãå®è¡ãããšããã®ã¿ã€ãæ
å ±ãååšããªããªããããå¥åŠãªåé¿çãçºçããŸãïŒãã®ãããå®éã«æ
å ±ãproject.godot
ã«ããŒãããããã«ãæ
å ±ã®ããŒããéå§ããå¿
èŠããããŸãããèµ·åæã«ClassDB
ãã«ã¹ã¿ã ã¿ã€ããè¿œå ããããã®EditorPlugins
ããªããããã·ãŒã³ã®å®è¡æã«GDScriptã®ã³ã³ãã€ã«ã倱æããŠããŸããïŒã
@ Web-eWorksãããŠãããªãã®ä»¥åã®è³ªåã«çããããã«ãã¯ããããã¯æ£ããæ©èœããŸãã
ç§ã®ãã¹ãã·ããªãªã§ã¯ã GDSkillsEffect
> GDSkillsAPI
> Node
ãæ¡åŒµãã$ Node.gd
ããããåã¹ã¯ãªããã«å®è£
ãããŠãã_readyã¡ãœããã¯é©åã«ããªã¬ãŒãããŸãé åºïŒAPIãEffectãNode.gdã
2ã€ã®ã¹ã¯ãªããã®äž¡æ¹ãã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããããååã§ç¶æ¿ããããšãããšãã¯ãã€ã§ããç§ã¯çŸåšãããçš®ã®ç¡éã«ãŒããšã©ãŒãçµéšããŠããŸãã å
ã Node.gdã«extends GDSkillsEffect
ãããã gdskills_effect.gd
ã«extends GDSkillsAPI
ãããå Žåã gdskills_effect.gd
ãŸãã¯gdskills_api.gd
ãå€æŽããŠä¿åããããšãããšããšãã£ã¿ãŒã¯æ¬¡ã®ããã«ãªããŸããç¡éã«ãããŒããããŠããã¯ã©ãã·ã¥ããŸãã ããã¯ããããçŸæç¹ã§ã®ç§ã®æ倧ã®ãã°ã§ãã
@willnationsdevãããããã Node.gd
ãNode
$ãæ¡åŒµããããšã«ã€ããŠè©±ããŠããã_ not_ GDSkillsEffect
ã _that_ãæ©èœããå Žåããã¹ãŠãè¯å¥œã§ãã
ããšãã°ãã·ãŒã³ããªãŒã®è¡šçŸã¯æ¬¡ã®ãšããã§ãã
-> User Script:
extends Node
func _ready(): pass
@ Web-eWorksãããç§ã¯ããªããäœãæå³ããã®ãããããŸãã ãŸããããã¯åäœããã¯ãã§ãããç§ã¯ããããã¹ãããŸããããããŠObject::set_script()
ã®ç§ã®ããžãã¯ãäœããã®çç±ã§ããããããã¯ããŠããããã§ããããã¯ç§ãä¿®æ£ããå¿
èŠããããã°ã§ãã XD Node
ãã«ã¹ã¿ã ã¿ã€ãã¹ã¯ãªããã掟çãããŠããªãããšãæ€åºããããã«å€±æããŠããŸãïŒããã¯æ¬åœã§ããããã§ãïŒãããã®å Žåã¯å€±æããªãã¯ãã§ããç¬ã
@ Web-eWorkså ã«è¿°ã¹ãããã«ãããã¯ClassDBã§å€æŽããå¿ èŠã®ãããã®ã§ã¯ãããŸããã
ã¹ã¯ãªããèšèªããšã«åŠçãç°ãªãããããããã³ã¢ã§è§£æ±ºããå¿ èŠã¯ãªããšæããŸãã Monoã§æ°ããã¯ã©ã¹ãç°¡åã«äœæã§ãããããæ©èœããŸãã GDScriptã®å Žåãã¹ã¯ãªãããã¡ã€ã«ãããªããŒããããã°ããŒãã«ãšããŠå ¬éãããšããåçŽãªã±ãŒã¹ã§ããå¯èœæ§ããããŸããããã ãã§ãã PRã§ææ¡ãããŠããããã«ãäžèœã®ãœãªã¥ãŒã·ã§ã³ã¯ééããªãé²ãã¹ãéã§ã¯ãããŸããã
@willnationsdevããªãã®åªåã«æè¬ããŸãããããã¯ãã§ã«çµããã®ãªãè°è«ã§ãããã³ã³ã»ã³ãµã¹ã¯æ¬¡ã®ãšããã§ãã
@willnationsdevåèãŸã§ã«ããšã³ãžã³ã®åäœã§ã¯ãç¶æ¿éå±€ã§_something_ãæ¡åŒµããã¹ã¯ãªãããããŒãã«è¿œå ã§ããŸãã ãããã£ãŠã extends Spatial
MeshInstance
è¿œå ã§ããŸããã Control
ãŸãã¯Node
ã¯è¿œå ã§ããŸãããåŸè
ã¯ãã©ã¡ããSpatial
ããç¶æ¿ãããŠããªãããã§ãã
@reduzããããMonoã§æ°ããã¯ã©ã¹ãäœæãããšãããããšã³ãžã³ã®ç¶æ¿éå±€ã«è¿œå ãããŸããïŒ ãŸãã¯ãç·šéè ã®[ããŒãã®äœæ]ãã€ã¢ãã°ïŒ ãããããããã§ã¯åãããšã«ã€ããŠè©±ããŠããã®ã§ã¯ãªããšæãã®ã§ãããã®ç®çãäœã§ããããç°¡æœã«è¿°ã¹ãæ°ããåé¡ãéãå¿ èŠããããŸãã
ClassDBã®å€æŽã®ãã€ã³ãã¯ããšã³ãžã³ãåã³ã³ãã€ã«ããããšãªããæ°ããã¿ã€ãã®ããŒãïŒãŸãã¯ãªãœãŒã¹ïŒãç»é²ã§ããããã«ããããšã§ãã GDScriptã«æ°ããã«ã¹ã¿ã ã°ããŒãã«ãè¿œå ããªãã§ãã ããããã ããããã¯@willnationsdevãåããã©ã³ãã§åãçµãã§ããæ¥ç·ã®åé¡ã§ãã
ããã®ãã€ã³ãã¯ãããã¯ãè¿œå ããããšã§ã¯ãªãããšã³ãžã³ã®ã¿ã€ããæ¡åŒµããããã«é©åã«èšèšããã_system_ãäœæããããšã§ãã
@ Web-eWorksãšã³ãžã³ç¶æ¿éå±€ã¯ãã¹ã¯ãªããã§ã¯ãªãC ++çšã§ãã ãããã®äž¡æ¹ãæ··åããããšããããšã¯ãããããæŠå¿µçã«ééã£ãŠããŸãã
ãããã誀解ã¯ãããŒãã®äœæãã€ã¢ãã°ãæ°ããã¯ã©ã¹ãè¿œå ãããããã«èŠããããšã§ãããã®ããããã®ãããªã«ã¹ã¿ã åã«ã¹ã¯ãªãããæ確ã«å«ããã®ãšããŠããŒã¯ãä»ããããšããå§ãããŸãã
@ Web-eWorks Monoã䜿çšããŠããå ŽåãMonoã¯æ°ããã¯ã©ã¹ã§ãããããæ°ããã¯ã©ã¹ãè¿œå ããããã®ããã«ééçã«è¡šç€ºãããŸãã GDScriptã®å Žåãã¯ã©ã¹ã¯ããã©ã«ãã§ãã¡ã€ã«ã§ããããããã®æ¹æ³ã§è¡ãããšã¯ã§ããŸããããã®ããããããè¡ãæ¹æ³ã¯ãå°çšã®UIãåããæ°ããã°ããŒãã«ãè¿œå ããŠèšå®ããããšã§ãïŒã·ã³ã°ã«ãã³èªåããŒãã®å Žåã®ããã«ïŒ...ãã ããããã¯ãŸã ã¹ã¯ãªããã¯ã©ã¹ã§ããããšã³ãžã³ã¯ã©ã¹ã§ã¯ãããŸããã
@willnationsdevããã«é¢ããç§ã®å šäœçãªãã€ã³ãã¯ãå®éã®æ°ããã¯ã©ã¹ããšã³ãžã³ã«è¿œå ããŠããããã«èŠããããšã¯ééã£ãŠãããšæããšããããšã§ããããã§ã¯ãªãããã§ãã æ··ä¹±ããå¯èœæ§ããããŸãã ããã¯ã¹ã¯ãªãããå«ãåãªãããŒããªã®ã§ãã¹ã¯ãªãããé衚瀺ã«ããã®ã§ã¯ãªããäœæãã€ã¢ãã°ã§ã¹ã¯ãªãããããèŠãããããããšãæ£ããæ¹æ³ã ãšæããŸãã
@reduzãŸãããããåé¡ã§ãã Node + Scriptã¯ã·ãŒã³ã§ãã add_custom_typeã¡ã«ããºã ã¯ãMonoã®ããã«åäœããæšæºã«ãã£ãŠæè¡çã«ãã¯ã©ã¹ãã§ãªããŠãããæ°ããã¯ã©ã¹ããç»é²ããå¿ èŠããããŸãã ClassDBã«è§Šããããšãªããããè¡ãæ¹æ³ãããã°ãç§ã¯ãã¹ãŠã®è³ã§ãã
ãŸãã@ akien-mgaã¯ãã·ãŒã³ããªãŒãã¥ãŒã§ã«ã¹ã¿ã ããŒãã®ã¹ã¯ãªãããé衚瀺ã«ããŠããŠãŒã¶ãŒããã®ã¹ã¯ãªãããäœæããŠèª€ã£ãŠç·šéããããšã«ã€ããŠãŠãŒã¶ãŒãæ··ä¹±ãããªãããã«ããããšãææ¡ããŸããïŒãã ããäžéšã®ã€ã³ã¹ãã¯ã¿ãŒã«è¡šç€ºããŸãïŒã ã
ãã®ãããªããŒãã§ã¯ãã¹ã¯ãªãããè¿œå ãããšç¶æ¿ã¢ãŒãã§äœæãã€ã¢ãã°ãéãããããããã«ã¹ã¿ã ããŒãã§ããããšã³ãžã³ã®äžéšã§ã¯ãªãããšã¯æããã§ããããŠãŒã¶ãŒã®ã¯ãŒã¯ãããŒã«é¢ããŠã¯ããªãééçã§ãã
@willnationsdevå®è£ ã®ç¯å²ãå ·äœçã«è©³è¿°ãããæ°ãããããç°¡æœãªåé¡ãéãããšã«ç°è°ã¯ãããŸããïŒ
@ Web-eWorksããŒã+ã¹ã¯ãªããã¯ã·ãŒã³ã§ã¯ãªããããªãŒã¬ã€ã¢ãŠãã®ããŒãã¯ã·ãŒã³ã§ãã ããŒãã ãã§ãªããã«ã¹ã¿ã ãªãœãŒã¹ã¿ã€ããè¿œå ããããšãã§ããŸãã
ããããæ°ããã¯ã©ã¹ãç»é²ããããã«åäœããã¹ãã§ã¯ãããŸããã ã¹ã¯ãªãããäºåã«è¿œå ãããC ++ã¯ã©ã¹ã§ããããšãæ確ã«ããå¿ èŠããããŸãã
@ Web-eWorksãããããã¯ç§ã«ã¯åé¡ãããŸããã ç§ã«èšåããŠãã ãããããããã°ç§ã¯pingãåãåããŸãã å¥ã®åé¡ãå¿ èŠãã©ããããããŸãããïŒ
å¥ã®èŠ³ç¹ããèŠãŠãã ããã ããªãã®è°è«ã¯ãããããæ°ãããšã³ãžã³ã¿ã€ãã§ãšã³ãžã³ã¿ã€ããæ¡åŒµããŠãããã®ããã«ãŠãŒã¶ãŒã«èŠããããã«ããããšã§ãã
ç§ã®èŠè§£ã§ã¯ãæ°ãããšã³ãžã³ã¿ã€ãã§ã¯ãªããã¹ã¯ãªããã䜿çšããŠãšã³ãžã³ã¿ã€ããæ¡åŒµããŠããŸãã ãããŠããŠãŒã¶ãŒã¯æãã§ã¯ãªãããããç¥ãå¿ èŠããããŸãã
@reduz Node + Scriptã«ã€ããŠç§ãæå³ããã®ã¯ããã®ã¡ã«ããºã ã¯ã·ãŒã³ã®ã€ã³ã¹ã¿ã³ã¹åã«ãã£ãŠãã§ã«ã«ããŒãããŠãããšããããšã§ããã
ãã¶ãç§ã¯Monoã®å®è£ ã誀解ããŠããŸãããMonoã¯ã©ã¹ã¯ãŸã ã¹ã¯ãªããã§ã¯ãããŸãããïŒ
@reduzç§ã¯ã»ãšãã©ããªãã«åæããŸãããŸããã«ã¹ã¿ã ããŒãã«ã¹ã¯ãªãããè¿œå ãããšããããç¶æ¿ããããšãææ¡ããã ãã ãšããªããèšã£ããšããããã§ãã ãããããããGDNativeã«ã¹ã¿ã ã¿ã€ãã§ã©ã®ããã«æ©èœãããšæããŸããïŒ
@reduzãã ããç§ãã¡ã®ç®æšã®1ã€ã¯ãã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããïŒC ++ã¯ã©ã¹ã«é 眮ããããããã®äºåã«å²ãåœãŠãããã¹ã¯ãªããïŒãåé€ã§ããªãããã«ããããšã§ãã ããã¯ãå®è¡æã«ãã€ã§ãã¹ã¯ãªãããåé€ã§ããããããšãã£ã¿ãŒã®ã³ã³ããã¹ãã§ã¯å®è¡ã§ããªãããšã§ãïŒãã®æ©èœãä¿æãããšãã£ã¿ãŒã§èšèšæã«ã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããã®ã¿ãä¿è·ããå Žåãé€ãïŒ
ç§ã¯ç¢ºãã«å¥ã®æ¹æ³ãåãå ¥ããã§ãããã ãããã«ãããæãç°¡åãªå®è£ ã¯ããµãŒãããŒãã£ã®ç»é²ã¯ã©ã¹ïŒClassDBãProjectSettingsãEditorDataããŸãã¯ä»ã«äœãç¥ã£ãŠãããïŒããã§ãã¯ããããšã«ãã£ãŠããªããžã§ã¯ãã«æ¡ä»¶ä»ãã§ã¹ã¯ãªãããå²ãåœãŠãããããšã§ãïŒå®è£ ã§è¡ã£ãããã«ïŒã ã ããããã°ãç·šéè èªèº«ããã®ãµãŒãããŒãã£ã«ç¢ºèªããŠãå¥ã®æ¹æ³ã§è¡šç€ºããããšãéåžžã«ç°¡åã«ãªããŸãïŒå®è£ ã§è¡ã£ãããã«ïŒã ãã ããç»é²ãClassDB以å€ã®ã³ã³ããã¹ãã«ç§»åããããšã¯ããŸããªããšæããŸãã
^ãã®åŠ¥åã¯åãå ¥ããããŸããïŒ ãã以å€ã®å Žåã¯ããªããžã§ã¯ãããµãŒãããŒãã£ã«ç¢ºèªããããã«å²ãåœãŠãããã¹ã¯ãªãããååŸããå¯èœæ§ã®ãããã¹ãŠã®å Žæã现ãã管çããå¿ èŠããããŸãã ããã¯ã¯ããã«è€éã«ãªããŸãã
ç§ãè¡ã£ãå®è£ ã¯ããããŸã§ã®ãšããéåžžã«æ確ã§ããã©ã®ãã¿ã€ãããã¹ã¯ãªããã§ãããã©ã®ãã¿ã€ãããã¹ã¯ãªããã§ã¯ãªããã«ã€ããŠã§ãã çµå±ã®ãšãããç§ãå ±æãããããªã®ã·ãŒã³ããã¯ã§ãã«ã¹ã¿ã ã¿ã€ãã«é¢é£ä»ããããã¹ã¯ãªãããã¯ã£ãããšç¢ºèªããŠã¢ã¯ã»ã¹ããããšãã§ããŸãã
@willnationsdevããªããããããšããŠããããšã¯ç解ããŠããŸãããããããããã«è¡ãããšã¯ã§ããªããšæããŸãã ããã¯ãæåŸ ã©ããã«å®å šã«æ©èœããããšã¯æ±ºããŠãªãæ¹æ³ã§ãé ãããçç±ã®ãªãè€éããé ããŠããŸãã
@Zylannåãã ãšæããŸãããaïŒã¹ã¯ãªãããgdnative internalã§ããbïŒgdnativeã®å éšã¡ãœããã䜿çšããŠããã ç§ã¯ãããæ£çŽã«èšãã«ã¯ååã«ç²ŸéããŠããŸããã
@reduzãªããžã§ã¯ãã«ã¹ã¯ãªããããŒã¹ã®å¶çŽãäœæãã圢åŒãèš±å¯ããããªããšèšã£ãŠããŸããïŒ åå ç§ã¯ãã§ãã¯ããžãã¯ããšãã£ã¿ãŒèªäœã«ç§»åããããšãã§ããããã¯å¶çŽã®èšèšæãã§ãã¯ãåãããã«ç°¡åã«æäŸããŸãïŒããªããèšãããã«UIã®å€æŽïŒãããããããã¯å®è¡æã«æ©èœããªãã®ã§ã人ã ã¯ãŸã æœåšçã«ã²ãŒã ãå®è¡ãããããç©äºãå€æŽããããšãã§ããŸãã ããã¯ããªãã«ãšã£ãŠããããŸãããã§ããããïŒ ããã§ããå®è¡æã«ãã§ãã¯ã§ããããã«ããããšæããŸã...
@willnationsdevã©ã®ãããªçš®é¡ã®ã¹ã¯ãªããããŒã¹ã®å¶çŽãå®è¡ããŸããïŒ
ã«ã¹ã¿ã ã¹ã¯ãªããããããã£ãæåããååšããŠããã®ãšåãå¶çŽïŒå²ãåœãŠãããã¹ã¯ãªãããä»ã®ã¹ã¯ãªããã掟çãããããšã匷å¶ããŸãã
ã·ãŒã³éå±€å ã®æ¡åŒµã¹ã¯ãªããã®ã¹ã¯ãªããã¢ã€ã³ã³ãé衚瀺ã«ããããšããå§ãããŸãã誰ããæ»æãããã¹ã¯ãªãããç¶æ¿ããããŒãã®åºæ¬ã¯ã©ã¹ãç¶æ¿ãã代ããã«ã[ã¹ã¯ãªããã®è¿œå ]ãã¿ã³ãã¯ãªãã¯ããå Žåã ééçã§ãClassDBããããå¿ èŠã¯ãŸã£ãããããŸããã
ãããã£ãŠã script_language.h
ã®æ
å ±ã®äžéšã確èªããã ãã§ã ClassDB
ã«è¿œå ããæ°ããã³ã³ãã³ããScriptLanguage
ã¯ã©ã¹ã«ç§»åããŠãã¹ã¯ãªããèšèªãããã䜿çšããããšãæå³ããŠããå Žåã«ã®ã¿äœæãããäžçš®ã®ScriptDB
ã·ã³ã°ã«ãã³ã ãŸãã object.cpp
ã«ã¯ãã§ã«script_language.h
ãå«ãŸããŠããããã set_script(const RefPtr &p_script)
ã§æ¬¡ã®ããšãã§ããŸã...
p_script
ãå®éã«ã¹ã¯ãªããã§ãããã©ããã確èªããŸãp_script
ãå±ããèšèªã確èªããŠãã ããp_script
ãšObject
ã€ã³ã¹ã¿ã³ã¹ã®custom_script
ãé¢é£ããScriptLanguage
ã®ScriptDB
ã«æž¡ããŸããObject
ã®custom_script
ã«ãã£ãŠæ瀺ãããå¶çŽãèæ
®ããŠã p_script
ãObject
ã«å²ãåœãŠãããšãã§ãããã©ããã«ã€ããŠã$ ScriptDB
ããå¿çãååŸããŸãã Object
ã€ã³ã¹ã¿ã³ã¹ãããã«ããã ClassDB
ã®å€æŽãã¯ãªãŒã³ã«ä¿ã¡ã object.h
ãã¯ãªãŒã³ã«ä¿ã€ããšãã§ããŸãïŒ custom_script
ã®ã»ãã¿ãŒ/ã²ãã¿ãŒã¯å¥ãšããŠïŒã ãŸããèå¥åãšåå空éãå®çŸ©ããããã«Godotã«äŸåããå¿
èŠããªãã¹ã¯ãªããèšèªã®äžå¿
èŠãªè€éããé²ããŸãïŒCïŒãC ++ãPythonãªã©ãšã¯ç°ãªããGDScriptãVisualScriptãå¿
èŠã«ãªããŸãïŒã
次ã«ãã«ã¹ã¿ã ã¿ã€ã/ã«ã¹ã¿ã ã¿ã€ãã®ç¶æ¿ã確èªããå®éšçãªClassDB
æ©èœã眮ãæããããã«ãé©çšå¯èœãªãã¹ãŠã®ã¹ã¯ãªããèšèªã§èå¥å/åå空éãã§ãã¯ãå®è¡ã§ããScriptServer
ã¡ãœãããå®çŸ©ããã ãã§ããéå±€ã ç°¡åã§ãã
ãã®ããããã蚱容å¯èœãªä»£æ¿@reduzã®ããã«èãããŸããïŒ
ããã«ç§ã®å£°ãè¿œå ããã ãã§ãã ç§ã¯Godotã䜿ãå§ããã°ããã§ãã«ã¹ã¿ã ã¿ã€ãã®ã¢ããªã³ã«ã€ããŠèªãã ãšããå®éã«æ°ããåå©çšå¯èœãªããŒã¹ã¿ã€ããäœæãããšæããŸããã KinematicBody
ãäœæãããšãã®ããã«ãã¹ã¯ãªãããããã«ã¢ã¿ããã§ããŸãããããã§ãKinematicBody
ã®ãã¹ãŠã®ããšãå®è¡ããŸãã
ããã¯2ã€ã®æ¹æ³ã§åŒ·åãããŸãã
@JPTeasdaleæ®å¿µãªãããçŸæç¹ã§ã®ãã倧ããªæžå¿µã¯å®è£ ã§ãããããããã©ã®ããã«å®çŸ©ãããããšãã質åã§ã¯ãããŸããã ãããŠãGodotã«ã¹ã¿ã ã¿ã€ãã¯æ¡åŒµå¯èœã§ãïŒãããã¯åãªãã¹ã¯ãªããã§ãïŒã ãšãã£ã¿ãŒã«ã¯ãããŒãäœæãã€ã¢ãã°ã§ã«ã¹ã¿ã ã¿ã€ãéã®ç¶æ¿é¢ä¿ã衚瀺ããããã®ã³ãŒããµããŒãããŸã ãããŸããããããŒã¿ã¯å©çšã§ããŸãã ãŸãããã«ã¹ã¿ã ã¿ã€ããããå¥ã®ååã«å€æŽããçç±ãããããŸããã ããã¬ããããšããã³ãã¬ãŒããã¯å®éã«ã¯é©åãªçšèªã§ã¯ãªããããããã·ãŒã³ã§ããããŸããïŒãããã¯åãªãã¹ã¯ãªããã§ãããåçŽã§åçŽã§ãïŒã
ç§ã¯ãããæå³ãã解決çãããã¯ããã«ç°¡åã ãšæããŸãïŒ
@MarianoGnuãããšããšãã£ã¿ãŒã®å€æŽãäœæãããšããç¹ã§ã¯ã script
ããããã£ãèªåå
¥åããããããnullã«ãªãã®ãé²ãã ãã§ç°¡åã«è¡ããŸãïŒãšãã£ã¿ãŒã¯script
ããããã£ã§ããã script
ããããã£ãåç
§ãããã³ã«æ€çŽ¢ããŠã script
ã®å€ãå€æŽããã ãã§ããã°ããã®ã³ãŒããå€æŽããå¿
èŠã¯ãããŸããïŒ ã
ããã¯èšã£ãŠãããã®ããã»ã¹ãããçŽãç®çã®äžéšã¯ãã¹ã¯ãªããèšèªãäžè¬ã«ãã¹ã¯ãªããã¯ã©ã¹ãèŠã€ããããã«ããã¡ã€ã«ãã¹ã§ã¯ãªãèå¥åã䜿çšããããšããªããã€ã³ã§ããããã«ããããšã§ãã ãããã ScriptDB
ã®æŠå¿µãŸãã¯ClassDB
ã®å€æŽãæåã«ææ¡ãããå¯äžã®çç±ã§ãã ããããä»ã§ã¯ãJuanãClassDB
ã®å€æŽã«ããã»ã©å察ããŠããçç±ãããããŸããããããã£ãŠãã¹ã¯ãªããAPIã®ã¿ã«æ
å ±ãä¿åããããšããå§ãããŸãã åã
ã®ã¹ã¯ãªããèšèªã®ãã¹ãŠã®æ
å ±ãå«ãŸããŠããŸãã
é衚瀺ã®ã¹ã¯ãªããããªããžã§ã¯ãã«ä¿åãã代ããã«ãã¹ã¯ãªãããªãŒããŒã«ããªãã¹ãè¿œå ããŠããextendCustomClassNameãããextendãã«çœ®ãæããããšãã§ããŸããresïŒ/path/stored/inScriptDB.gd ãGdScriptã®ããªã³ã³ãã€ã©ã§ã¯ãã¹ã¯ãªãããã¹ã¯ãªããããç¶æ¿ããŠéå±€ãäœæããã®ã¯éåžžã«é¢åãªã®ã§ãéå±€ã¯ã«ãŒãã®äžããäžã«åãã£ãŠãŸã£ãããªç·ã§ããå¿ èŠããããåå²ããããšæ··ä¹±ãçããŸãïŒ
ã¹ã¯ãªãããã¹ã¯ãªããã®ç¶æ¿éå±€ããå€ãã®ã¯éåžžã«é¢åãªã®ã§ïŒéå±€ã¯ã«ãŒãã®äžããäžã«åãã£ãŠãŸã£ãããªç·ã§ããå¿ èŠããããåå²ããããšæ··ä¹±ãçããŸãïŒ
@MarianoGnuå€åããã§ããã€ãã®èª€è§£ã ã©ã®æç¹ã§çžç¶ã®çŽç·ããªããšæããŸããïŒ ç§ãç©äºãå®è£ ããŠããéããã¹ã¯ãªããéã«ã¯åžžã«éåžžã«æ確ãªç¶æ¿éå±€ããããŸãã ç¶æ¿éå±€èªäœãã©ã®ããã«æ©èœãããã«ã€ããŠã¯ãäœãå€æŽããŠããŸããã ç¹å®ã®ã¹ã¯ãªãããStringNameã«ããããããããããçš®ã®DBã§æ€çŽ¢ã§ããããã«ããŸããã
ãŸãããã§ã«ãã®äœæ¥ãè¡ã£ãŠããå Žåã¯ãã¹ã¯ãªããã®ããã¹ããGDScriptã³ã³ãã€ã©ã®ãã¹ã«æ»ãçç±ã¯ãããŸããã ã³ã³ãã€ã©ãè¡ãã®ã¯ã Script
ã€ã³ã¹ã¿ã³ã¹ãscript
å€æ°ã«å²ãåœãŠãããšã ãã§ãã ResourceLoader::load(path)
ã¡ãœãããä»ããŠã¹ã¯ãªãããããŒããããã Class/ScriptDB::get_script(namespace_and/or_identifier)
ããŠã¹ã¯ãªããããã§ãããããã¯ãå®éã«ã¯éèŠã§ã¯ãããŸããã
ãã èšåãããã£ãã®ã§ãããGodotã®æ°ãããŠãŒã¶ãŒãšããŠããã©ã°ã€ã³ã®ãã«ã¹ã¿ã ããŒãããçµã¿èŸŒã¿ããŒããšããŠæ©èœãããšããå°è±¡ã§ãã©ã°ã€ã³ãäœæããŸããã ã€ãŸããããŒããªã¹ãããéžæããå Žåãã¹ã¯ãªãããªãã§ããŒããååŸããããšãæåŸ ããŠããŸãããããã©ã°ã€ã³ã§ã¹ã¯ãªãããäœæããæ©èœã¯ããã§ã«çµã¿èŸŒãŸããŠããŸãïŒçµã¿èŸŒã¿ããŒãã®å Žåãšåæ§ïŒã ã¡ããã©å ¥ã£ãã°ããã®èª°ãããå¥ã®æèŠãè¿°ã¹ãã¹ãã ãšæã£ãã ãã§ãïŒããã§ã®è°è«ã¯ãã§ã«åºç¯ã«è¡ãããŠããããã§ããïŒã
ãã«ã¹ã¿ã ããŒããã¯åãªãã¹ã¯ãªããã§ãããããçµã¿èŸŒã¿ããŒãã«ã¹ã¯ãªãããå²ãåœãŠãã ããšã®éãã¯äœã§ããïŒ ã«ã¹ã¿ã ããŒãæ©èœã¯äœãããããšã«ãªã£ãŠããŸããïŒ
@MCrafterzzãã©ã°ã€ã³ããäœæãããã«ã¹ã¿ã ããŒãã«ã¹ã¯ãªãããè¿œå ããæ©èœãæã€ããã«ãã«ã¹ã¿ã ããŒãã«æ©èœãå¿ èŠã§ããããšãè°è«ãããŸããã
çŸåšãã«ã¹ã¿ã ããŒãã¯ãã¹ã¯ãªããããã§ã«æ·»ä»ãããã¢ã€ã³ã³ãšååããã§ã«å€æŽãããç¶æ ã§äœæãããããŒãã§ãã
@willnationsdevãã®æ©èœãå®è£
ããããšã§ãã©ããŸã§å°éããŸãããã
ç§ã¯ãã®æ©èœã3.1ããåã«ããã«ããããšãæ¬åœã«æãã§ããŸããããã¯æ¬åœã«é©ãã¹ãè¿œå ã«ãªãã§ãããã
Godotãã©ã°ã€ã³ãšã¢ããªã³ã·ã¹ãã çšã
誰ã«ããã¬ãã·ã£ãŒããããããªãã ã§ãããããããããŸããããªãã§ãã ããã
ç§ã¯ã«ã¹ã¿ã åã·ã¹ãã ã®æ°ããããã¯ãšã³ããå®å šã«å®è£ ããŠããŸããã æ°ãããã®ã䜿çšãããšããŠãŒã¶ãŒã¯å ã®æ©èœããã¹ãŠå®è¡ã§ããŸããããã«ã[ã¹ã¯ãªããã®è¿œå ]ãã¿ã³ã䜿çšãããšãïŒã«ã¹ã¿ã ã¹ã¯ãªãããéãã®ã§ã¯ãªãïŒããã©ã«ãã§ã«ã¹ã¿ã ã¹ã¯ãªãããæ¡åŒµããæ°ããã¹ã¯ãªãããè¿œå ããã次ã®ããã«ãªããŸããã«ã¹ã¿ã ã¹ã¯ãªãããåé€ããããšã¯ã§ããŸããïŒä»ã®ãšã³ãžã³ã¿ã€ããšåæ§ã«ã[ã¿ã€ãã®å€æŽ]ãšãã£ã¿ãŒã³ãã³ãã䜿çšããå¿ èŠããããŸãïŒã
@swarnimarun
ããã«ããŠãŒã¶ãŒã¯ãã¿ã€ãåãããã¡ã€ã«ãã¹ãžã®ãããã³ã°ãžã®ã¢ã¯ã»ã¹ãæäŸããã°ããŒãã«ã«ã¿ã€ããç»é²ã§ããŸãã GDScriptã¯ããããã®ãããã³ã°ãæ¬è³ªçã«åçŽãªã°ããŒãã«ã¿ã€ãåãšããŠèªèã§ããããã«ãªããŸãã ããã«ãã¿ã€ãã¯ç»é²ããããã«ã«ã¹ã¿ã ã¿ã€ãã§ããå¿ èŠã¯ãªããã¿ã€ãã¯ã¹ã¯ãªãããŸãã¯ã·ãŒã³ã®ããããã§ãã
ãããŸã§ã®ãšãããæ°ããããã¯ãšã³ããå®è£ ããå ã®ã«ã¹ã¿ã ã¿ã€ãã®ã¹ã¯ãªããæ©èœãåèšå®ããŸããã çŸåšãæ°æ©èœã«åãçµãã§ããŸãã ããããä»ããäžé±éããã ä»é±ã¯å¿ããã§ãã
@willnationsdevå¿é
ãããŸããã3.1ã«ãªãã°æºè¶³ããŸãã
ãããŠãããã¯ããªãã®äœæ¥ã«ãªããããããªãããšã«æ°ã¥ããŸããã
è¯ãä»äºãç¶ããŠãã ããã
çŸåšããšãã£ã¿ãŒã«ã¯ãä»»æã®ããŒãã®ã¹ã¯ãªãããç°¡åã«æ¡åŒµããæ©èœããããŸãã
çŸåšãããŒãèªäœã¯æ¬¡ã®ããã«ãªã£ãŠããŸãã
ãããŠã @ reduzã®äž»ãªé¢å¿äºã¯ããã§ã«ã¹ã¯ãªãããæ·»ä»ãããŠãããšããäºå®ãé ãããšã§ããã äžæ¹ã§ã¯ãããããŠãŒã¶ãŒããé ããªãããšã¯çã«ããªã£ãŠããŸãã ãã ãããã®äžæ¹ã§ãã«ã¹ã¿ã ããŒãã«ã¯ã»ãšãã©ã®å Žåã¹ã¯ãªãããæ·»ä»ãããŸãã ã¹ã¯ãªããããªãå Žåãã«ã¹ã¿ã ããŒãã¯ãã«ã¹ã¿ã ã¢ã€ã³ã³ãè¿œå ãããæ¢åã®éåžžã®ããŒãã§ãããè¿œå ã®æ©èœã¯è¿œå ãããŸããã
ãŸããã«ã¹ã¿ã ã¹ã¯ãªãããæ¡åŒµããããšã¯ã§ããŸããããã¬ãŒã³ãªã«ã¹ã¿ã ããŒããæ¡åŒµãããã«ã¹ã¿ã ããŒããšåãããã«èŠããã®ã¯éåžžã«é¢åã§ãã
ãããã£ãŠããããç§ã®ç°¡åãªè§£æ±ºçã§ããã«ã¹ã¿ã ããŒãã®ã¹ã¯ãªãããã«ã¹ã¿ã ããŒãã®å®çŸ©ã®ã¹ã¯ãªãããšåãã§ããå Žåãã¹ã¯ãªããã¢ã€ã³ã³ã¯æ¬¡ã®ããã«ãã§ãŒãã¢ãŠãããå¿ èŠããããŸãã
æå³ïŒ
çãããå®éã®äŸïŒåãçš®é¡ã®ã«ã¹ã¿ã ããŒããå€æ°ãããåã¹ã¯ãªãããç¬èªã®ã€ã³ã¹ã¿ã³ã¹çšã«ã«ã¹ã¿ãã€ãºãããŠããå ŽåãããŒã¹ã®ã«ã¹ã¿ã ããŒãã¹ã¯ãªãããå€æŽãããšã©ããªããŸããïŒ ç§ã¯ããªãã«èšããŸãïŒç§ã¯ãããä¿®æ£ããå¿ èŠãããã®ã§ææªã§ãããããã«å¿ããŠä»ã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã¯ã人çããã³ã¿ã€ããã¹ã®ãšã©ãŒã®å¯èœæ§ãé«ãã§ãã
ã¹ã¯ãªãããé衚瀺ã«ããããªãã§ããïŒ æ¬¡ã«ãcustom_nodeã¹ã¯ãªãããšãããžã§ã¯ãããŒãã¹ã¯ãªããã衚瀺ããŸãã
@aaronfrankeç§ã®æèŠã§ã¯ããããæåã®è§£æ±ºçã§ãã ã€ã³ã¹ã¿ã³ã¹åãããã·ãŒã³ã§ãããããããæ©æµãåããããšãã§ããŸãã
@zatherz et alãïŒ30697ãå®è£ ãããã®ã§ãä»ã«äœãæ¹åã§ããŸããïŒ https://github.com/godotengine/godot/issues/6067#issuecomment -238250383ã«éèŠãªãã®ã¯ä»ã«ãããŸããïŒ
ïŒ30697ã§ä¿®æ£ããããšããã«çµäºããŸãã https://github.com/godotengine/godot/issues/6067#issuecomment -238250383ã§äœæãããOPã®å ã®ææ¡ã¯å®è£ ãããŠããŸãããã httpsïŒ//ã§ã®@reduzã®æžå¿µã«ãããããã¯çºçããŸããã github.com/godotengine/godot/issues/6067#issuecomment-239060186 ã
æãåèã«ãªãã³ã¡ã³ã
ç§ãç解ããŠããããã«ãçµã¿èŸŒã¿ããŒãã®ããã«åäœããã«ã¹ã¿ã ããŒããäœæããå¯èœæ§ãããããšãæåŸ ãããŸããã€ãŸãã次ã®æ©èœãåããŠããå¿ èŠããããŸãã
RedNode2D
ã¯Node2D
ãæ¡åŒµããã«ã¹ã¿ã ã¹ã¯ãªãããä»ããŠèµ€ãå€èª¿ãå®çŸ©ããŸãïŒextends RedNode2D
ïŒãããã¯ãã«ã¹ã¿ã ããŒãã宣èšãããšãã®ãèªç¶ãªãæåŸ ã§ãããéåžžã«åŒ·åãªæ©èœã§ãã äžèšã®ããšããããããŸã§ã®ãšãããèšèšäžã®æ±ºå®ãããããã®ããã«ã¯æ©èœããªãããšãããããŸããã ç§ãäžã§èª¬æãããããªæ©èœãæã€æ¹æ³ãããã°ãããã¯å€ãã®ã¢ããªã±ãŒã·ã§ã³ãæã£ãŠãããšç¢ºä¿¡ããŠããŸãã Assetlibã¯ãç®±ããåºããŠããã«å€ãã®äœæ¥ãè¡ãã«ã¹ã¿ã ããŒãã§ãã£ã±ãã«ãªããçµã¿èŸŒã¿ã®ããã«äœ¿çšã§ããŸãã
äœãã§ããããäœããã¹ããã«ã€ããŠã³ã³ã»ã³ãµã¹ãåŸããããŸã§åéããŸãã