[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
164(1): 2017/12/27(水)21:23 ID:4kYoBCMG(8/10) AAS
AA省
165(1): 2017/12/27(水)21:26 ID:4kYoBCMG(9/10) AAS
 >>163 
 遷移後にそのまま冒頭のイベント処理みたいなことをやりたくて 
 ならそのまま遷移処理の後に引き続きそのメソッド内である程度指示だして引継ぎすればよくね? 
 でやってみたら遷移後のシーンのオブジェクト参照ができなかったということから質問をしました 
166: 2017/12/27(水)21:33 ID:fBJY1RTE(5/6) AAS
 値の保持に使ってるんじゃないのかよ 
 何の意味があるんだそれ 
167: 2017/12/27(水)21:39 ID:4kYoBCMG(10/10) AAS
 上でも書いてるのですけど本来の目的はそれですが 
 試してみたところエラーが出たので質問をした ということです 
168: 2017/12/27(水)21:48 ID:fBJY1RTE(6/6) AAS
 objAを外から読み書きできるようにしたんだよね? 
 なんでobjAからobjBを見る必要があるのか分からない(出来るけど) 
169(2): 2017/12/27(水)22:33 ID:UZCkhUUp(1) AAS
 >>165 
 シーン遷移時は、前のシーンのオブジェクトを破棄して新たなシーンのオブジェクトを構築する処理が走る 
 この処理が終わらないと新しいシーンのオブジェクトはFindでは見つからない 
  
 よって、新たなシーンのオブジェクトを見つけたければSceneManager.sceneLoadedデリゲートを使ってシーンのロードが完了してから処理を行う必要がある 
  
 ちなみにSceneManager.sceneLoadedはロードされたシーンのオブジェクトのAwakeが完了し、Startが呼ばれる前に呼ばれる事に注意 
 またこのデリゲートはどのシーンがロードされても呼ばれるから処理内でシーン毎に振り分けるかハンドラをつけ外しするなどの対処が必要 
170(1): 名無し@キムチ 2017/12/27(水)22:59 ID:oeXBuupd(2/2) AAS
 >>164 
 遷移後のobjBをFind →失敗  
 当方の経験ではFindは、そのオブジェクトにアタッチされているスクリプトからでないと、失敗したり成功したりその時々によってさまざまだな。 
171: 2017/12/27(水)23:23 ID:Y6rKayv0(1) AAS
 なんだやっぱりキムチか 
172: 2017/12/27(水)23:29 ID:9tGAk59e(3/3) AAS
 プログラムが成功したり失敗したりなんて挙動するわけない 
 成功するのも失敗するのも理由がある 
 理由を理解できていないのにプログラムのせいにするプログラマー 
173(1): 2017/12/27(水)23:56 ID:2+M/n1Lm(4/4) AAS
 >遷移後のシーンに配置されているボタンから、objAのメソッド?を呼び出す  
  
 本当に呼び出せている? 
 Find以前の問題だったりして・・・ 
174(1): 2017/12/28(木)00:13 ID:mH5YII84(1/8) AAS
 ボタンからの入力を受けていないだけとかはないですか? 
 UIから、その該当スクリプトへのコールがかかっていないとか? 
  
 入力をInputにして、 
 if?(Input.GetKeyDown?(KeyCode.Space))?{ 
  Debug.Log("Input OK"); 
  GameObject A = GameObject.Find("objA"); 
  Debug.Log(A); 
 } 
 を追加して、 
 スクリプトが機能しているかどうか、
省1
175(1): 2017/12/28(木)00:18 ID:mH5YII84(2/8) AAS
 すみません、objAからobjBの方を見たいんですね 
  
 objAのスクリプトのUpdate()内に、 
 if (Input.GetKeyDown (KeyCode.Space)) { 
  Debug.Log("Input OK"); 
  GameObject B = GameObject.Find("objB"); 
  Debug.Log(B); 
 } 
 を追加して、 
 スクリプトAが機能しているかどうか、 
 オブジェクトBを取得できているかどうかを確認してみてください
省6
176(1): 2017/12/28(木)00:34 ID:mH5YII84(3/8) AAS
 各オブジェクトのそれぞれのスクリプトで行っていることが良く分からないのですが、 
  
 Scene1 
  objA-A.cs:DontDestory 
   ボタン→LoadScene("Scene1") 
  objC-C.cs:DontDestory 
 ↓ 
 Scene2 
  objA-A.cs:DontDestory(Scene1から) 
   メソッド?→A = Find("objB") →NG 
  objC-C.cs:DontDestory(Scene1から)
省8
177(1): 2017/12/28(木)00:51 ID:fQL7hUYb(1/2) AAS
 >>169 
 レス遅れてすみません。 
 ありがとうございます。 
 とても参考になり、わかりやすかったです。 
  
 結果として、やったことは 
 SceneManager.LoadSceneの直後にSceneManager.sceneLoadedを行って 
 そのデリゲート処理完了後にそれぞれのテストメソッドを呼び出して参照したりしたところ 
 問題なく参照できました。 
 >>161にはレスしませんでしたが、当たりだった感じです。 
  
 >>170
省5
178: 2017/12/28(木)00:56 ID:fQL7hUYb(2/2) AAS
 >>174-176 
  
 Scene1 
  objA-A.cs:DontDestory 
   ボタン→ *A.cs内の LoadScene("Scene1") 呼び出し 
  objC-C.cs:DontDestory * +変数1 
 ↓ 
 Scene2 
  objA-A.cs:DontDestory(Scene1から) 
   メソッド?→A = Find("objB") →NG 
  objC-C.cs:DontDestory(Scene1から)
省12
179: 2017/12/28(木)01:23 ID:GhM3Lpso(1) AAS
 デバッガ使えば5分で分かった事を22時間も掛けて 
 大した効率だよな 
180: 2017/12/28(木)01:43 ID:mH5YII84(4/8) AAS
 以前、物理演算で、どういう処理だったか忘れたけど、 
 変数を物理演算に設定した直後に、 
 同じフレーム内でデバッグログに物理演算結果を出力しようとしたら、 
 変数が設定された結果が出せなくて、 
 Invokeで1フレーム後にデバッグログを呼び出したら、出力できたことがあるので、 
  
 一度フレームを走らせないといけないポイントで処理を連続してしまうのは、 
 結構ピットホールになりやすいかもしれない 
181: 2017/12/28(木)02:14 ID:mH5YII84(5/8) AAS
 velocityの変更、positionの変更は、同じフレーム内で取得しても変更が反映されるけど、 
 例えばAddForceでは、たとえ1フレームで加速するForceMode.Impulseでも、 
 同じフレーム内ではまだvelocityは速度変更されておらず、 
 次のフレームでvelocityの変更が反映されるみたい 
  
 でも、1フレームで移動を行うMovePositionは、 
 同じフレーム内でpositionの変更が反映されているという・・・ 
182: 2017/12/28(木)02:20 ID:aEDu9yFW(1) AAS
 全然関係ねえよ 
 オブジェクトの生成と破壊は1フレーム掛かるから後処理は1フレーム待てと言われただろ 
 シーンの呼び出しも同じって>169に言われてんだろ 
183: 2017/12/28(木)02:49 ID:mH5YII84(6/8) AAS
 Invokeに1フレームかかるのか、1フレーム内で行う処理の量の問題なのか、 
 PCの性能の違いなのか、Unityのバージョンの違いなのかは不明だけど、 
  
 Rigidbody rb; 
 void Start() { 
  rb = GetComponent<Rigidbody>(); 
  rb.angularVelocity = new Vector3(0, 0, 180 * Mathf.Deg2Rad); 
  Invoke ("Log", 1); 
  //Invoke("Log", 1 - Time.fixedDeltaTime); 
 } 
 void Log() {
省8
上下前次1-新書関写板覧索設栞歴
あと 819 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s