【軽量】godot engine【無料】 part4 (944レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
852
(1): 名前は開発中のものです。 [sage] 2025/09/03(水) 00:01:51.40 ID:jiI02xbM(1/4) AAS
>>848
848(3): 生出白液 [] 2025/09/02(火) 22:58:19.74 ID:E0WT+1Oc(1) AAS
ColorRect(ルート)
└── Node2D(result 変数あり)
├── Label
└── Player(CharacterBody2D)ここにエラーが出たコードが書かれている
result変数が書いてあるNode2Dを親、Labelノードが子のコードのシーンがあって、それを親にし、Playerシーンを子にした状態で同じようなエラーが発生した。
Chatgptに詳しく聞いてみたが解決しなかった。ここでPlayerノードにfunc _ready():
print("自分:", self)
print("親:", get_parent())
print("親の親:", get_parent().get_parent())
を書いて実行すると
自分:fish:<CharacterBody2D#29007807814>
親:root:<Window#28470936891>
親の親:<Object#null>
自分:fish:<CharacterBody2D#31323063660>
親:result:<Node2D#31272731991>
親の親:ColorRect:<ColorRect#31239177554>
と出た。2回実行されてそれぞれ違う結果になった理由が分からなかった。シンプルにChatgptの使い方が悪いかもしれないけどあまり使えなかったです
少し間違っていた
自分:fish:<CharacterBody2D#29007807814>
親:root:<Window#28470936891>
親の親:<Object#null>
自分:fish:<CharacterBody2D#31323063660>
親:result:<Node2D#31272731991>
親の親:ColorRect:<ColorRect#31239177554>

このパターンだとColorRectの下にコードを持ったCharacterBody2Dは居ない
rootの下に配置されているのでこのツリーには存在していない
グローバルにCharacterBody2Dのコードを登録してはいまいか?
854: 名前は開発中のものです。 [sage] 2025/09/03(水) 12:00:54.40 ID:jiI02xbM(2/4) AAS
掲示板でもAIでも答えられる答えしか返らないので欲しい解答が得られる質問の仕方が判らないと先に進まないね
最初に提示されたコードでほぼ合っているので後少しの気付きを得られれば次に進めると思うんだな
コードレビューして基本的な考え方を学べると良いのだけれどそういう場を得られない人は大変よね
855: 名前は開発中のものです。 [sage] 2025/09/03(水) 12:29:44.85 ID:jiI02xbM(3/4) AAS
ノードの構造が変だと指摘されてノードから見える親を調べてる時点で有能に思う
埋め込んだコードが二回実行されるのが変だと気が付くのも有能
一度しか呼ばれない前提のコードが二回呼ばれているならば誰が呼び出しているかを探す事になる

取得した情報で自分自身の親情報が取れているのでどこにコードが存在しているかはおおよそ判る
ここで親がrootと表示されている事で自身が管理しているツリーに無いノードが存在している事が判る

GodotEngineの仕様を知っていればカレントツリーの上にrootがある事も判るのだけれど
初心者向け解説で触れているのは見かけないのでここは躓きポイント
root配下にカレントツリー以外がぶら下がる条件を知らないと更に躓く

そうなるパターンとしてはグローバルクラスが定義されている場合と
@toolなスクリプトが存在して勝手な振る舞いをしている場合
どちらの場合でも利用者が手を加えなければ勝手には発生しないので
設定を変えたりプラグインを導入していないかを確認する
859: 名前は開発中のものです。 [sage] 2025/09/03(水) 18:38:34.92 ID:jiI02xbM(4/4) AAS
>>858
858(1): 生出白液 [] 2025/09/03(水) 18:05:44.61 ID:F2t9mgCh(1) AAS
>>852
エラーの原因はグローバルにCharacterBody2Dのコードを登録していたからでした。教えてくれてありがとうございます。後これからはディスコードで質問していきたいと思います
解決したなら良かった、先は長いから程々で頑張れよ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.027s