unityでゲーム作りたい(Help!) (416レス)
unityでゲーム作りたい(Help!) http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
344: くまじょ [sage] 2020/05/14(木) 05:33:19.73 ID:6hw1sJEU ScriptPai pai = Instantiate(prefabPai).GetComponent<ScriptPai>(); Destroy(pai.gameObject); として実際見た目も消えているのに GameObject.FindGameObjectsWithTag("Pai"); で消したはずのも検出してしまう Destroy(pai.gameObject);を実行前にタグ名を変えておくことでごまかすけど http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/344
345: くまじょ [sage] 2020/05/14(木) 05:39:48.42 ID:6hw1sJEU >>344 [ExecuteAlways]が悪さしてるのかなあ 変更が多くてなくせないから検証してない http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/345
349: くまじょ [sage] 2020/05/14(木) 20:17:51.51 ID:6hw1sJEU GameObject[] goPais; goPais = GameObject.FindGameObjectsWithTag("Pai"); if(goPais.Length != 0) { Debug.Log("★-1- おかしな現象が起きてるぞ goPais.Length=" + goPais.Length); } ScriptPai pai = MakePai(0, 0, 0); goPais = GameObject.FindGameObjectsWithTag("Pai"); if (goPais.Length != 1) { Debug.Log("★-2- おかしな現象が起きてるぞ goPais.Length=" + goPais.Length); } //pai.tag = "Player"; // このあとDestroyしてるのにGameObject.FindGameObjectsWithTag("Pai");で見つけてしまう Destroy(pai.gameObject); goPais = GameObject.FindGameObjectsWithTag("Pai"); if (goPais.Length != 0) { Debug.Log("★-3- おかしな現象が起きてるぞ goPais.Length="+ goPais.Length); } http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/349
350: くまじょ [sage] 2020/05/14(木) 20:21:02.68 ID:6hw1sJEU >>349 ★-3- おかしな現象が起きてるぞ が表示された つまり Destroyしたのに GameObject.FindGameObjectsWithTagが見つけてしまう このあと、 goPais = GameObject.FindGameObjectsWithTag("Pai"); goPais[0]になにかすると すでにdestroyされているのでエラーになる http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/350
351: くまじょ [sage] 2020/05/14(木) 20:25:05.66 ID:6hw1sJEU >>349 GameObject.Destroyを使った方がいいのか? http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/351
352: くまじょ [sage] 2020/05/14(木) 20:30:13.80 ID:6hw1sJEU >>344-350 この質問を解決とします どうやらこういう動作をするものらしい Destroy(pai.gameObject);で即死はしていないので注意ってことだ http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/352
354: くまじょ [sage] 2020/05/14(木) 20:51:02.09 ID:6hw1sJEU >>350 訂正 Destroy() した直後は生きているから m_goPais = GameObject.FindGameObjectsWithTagが見つけてしまう 直後ではなくて後で m_goPais[0]に何かするとすでにdestroyされているのでエラーになる http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/354
359: くまじょ [sage] 2020/05/14(木) 22:21:37.30 ID:6hw1sJEU 余計な部分はかえって分かりにくくしてしまうので忘れてください paiはスクリプトコンポーネント paiには"pai"というタグがついている Destroy(pai.gameObject); goPais = GameObject.FindGameObjectsWithTag("Pai"); でGameObject.FindGameObjectsWithTagが pai.gameObjectを見つけてしまう 原因を調べてたら どうやらこう動作をするものなので 回避する必要がある ということがわかったという話 http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/359
362: くまじょ [sage] 2020/05/14(木) 22:53:07.03 ID:6hw1sJEU >>361 その指摘は正しい スクリプトではなくゲームオブジェクトにタグがついていると読み替えてください タグの話も忘れてください さらに簡潔に表現すると Destroy直後(すぐ次の行)ではまだオブジェクトは生きてたってだけのことですよ 検証はしてないけどそういう情報がネットにあったから http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/362
363: くまじょ [sage] 2020/05/14(木) 22:55:20.83 ID:6hw1sJEU ぐーぐるけんさく unity destroy 直後 http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/363
364: くまじょ [sage] 2020/05/14(木) 23:06:09.26 ID:6hw1sJEU >>352 既に簡潔なものをここに書いてた http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/364
366: くまじょ [sage] 2020/05/14(木) 23:17:21.20 ID:6hw1sJEU >>365 説明ありがとう そりゃ始めからDestroy直後のfindでは見つけてしまうって理解してたら質問しないさ http://mevius.5ch.net/test/read.cgi/gamedev/1521137463/366
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s