[過去ログ]
【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
【3Dゲームエンジン】Unity質問スレッド33 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
146: 名前は開発中のものです。 [sage] 2017/12/27(水) 19:40:39.07 ID:fBJY1RTE >>144 >FindだとHierarchyにない別のSceneのObjectは検索できないはず なるほどこういうことか http://imgur.com/RGyGQa6.png transform.FindとGameObject.Findは検索範囲が違う 俺はGameObject.Findだから取れてるみたい http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/146
147: 名前は開発中のものです。 [sage] 2017/12/27(水) 19:49:56.88 ID:y/zeZUnT 何百枚もカンバスあるの? そんなに多くないから登録しときゃ見つかるでしょ。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/147
148: 名前は開発中のものです。 [sage] 2017/12/27(水) 19:54:05.52 ID:9tGAk59e みんなカンバス読みなの? キャンバス派は少数? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/148
149: 名前は開発中のものです。 [sage] 2017/12/27(水) 19:56:05.13 ID:y/zeZUnT どっちでもいいなぁw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/149
150: 名前は開発中のものです。 [sage] 2017/12/27(水) 19:58:36.60 ID:TaFXzcmh 英語だとカンバスが近いらしい。HowTo動画とか見てるとカンバスカンバス言われるからカンバス読みになるんじゃないの。 キャンバスは美術用語で、学校で習うのはキャンバス読みだと思う。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/150
151: 名無し@キムチ [] 2017/12/27(水) 20:09:12.86 ID:oeXBuupd >>150 発音のことなのか・ 英語でもキャンバスが近いよw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/151
152: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:12:19.02 ID:9tGAk59e 別にどっちでも良いしどっちでも伝わるけど喋るときはどっちが多いのかなぁっていう素朴な疑問 ネイティブの発音はどうでも良い、カタカナ表記することが云々って話になるし http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/152
153: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:15:02.72 ID:Ojr+yz4V >>136 できる/努力する奴ひっぱり下ろすのはゲスすぎないか 俺もわかんないまま借りてるけどどっか後ろめたいよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/153
154: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:26:06.89 ID:4kYoBCMG >>142-145 レス遅くなりました。mm dontrestroyしたオブジェクトにアタッチされたスクリプトから 遷移後のオブジェクトがfind出来てるか確認したところ、出来ていませんでした。 上で出来ていると勘違いしたのはfindの時点でエラーが帰ってこなかったからという単純な理由でした。 遷移後のシーン内に作ったオブジェクトのスクリプトから同じコードをコピペしてみましたが こちらは普通にfind出来ていました public gameobjectとしてインスペクター上で両方
確認しました。 うーん。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/154
155: 名前は開発中のものです。 [] 2017/12/27(水) 20:36:04.46 ID:JxfZYfQR 香港人 「高卒だらけの日本人英語は、無いところにYの発音が入っちゃいます。土人丸出しです。」 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/155
156: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:40:05.60 ID:4kYoBCMG 今試したのですが、 objA dontdestroyしたオブジェクト | これにアタッチされているスクリプト内でボタン押されたら遷移する処理 | その遷移処理の後に同スクリプト内の別メソッド@を呼び出して遷移後のobjBをFind →失敗 ↓ シーン遷移 objB 遷移後のシーンに配置されているボタンから、objAのメソッド@を呼び出す → 成功
objAのヒエラルキーでobjBが格納されている だったんですけど、これどういうことなんだろう… http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/156
157: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:43:19.36 ID:4kYoBCMG >>156だとなんか時系列変に見えますね; objA dontdestroyしたオブジェクト | これにアタッチされているスクリプト内でボタン押されたら遷移する処理 | ↓ シーン遷移 objB その遷移処理の後に同スクリプト内の別メソッド@を呼び出して遷移後のobjBをFind →失敗 ↑
↓ 遷移後のシーンに配置されているボタンから、objAのメソッド@を呼び出す 成功 objAのヒエラルキーでobjBが格納されている みたいな感じです こっちのが見づらいかもしれませんが… http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/157
158: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:44:21.74 ID:y/zeZUnT 遷移処理はどこに遷移? ところどころ足りないので補足よろ。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/158
159: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:46:34.13 ID:y/zeZUnT 今来たw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/159
160: 名前は開発中のものです。 [sage] 2017/12/27(水) 20:48:37.38 ID:4kYoBCMG シーン1 objA dontdestroyしたオブジェクト | これにアタッチされているスクリプト内でボタン押されたら遷移する処理 | ↓ シーン2へ遷移 objB その遷移処理の後に同スクリプト内の別メソッド@を呼び出して遷移後のobjBをFind →失敗 ↑ ↓ 遷移後のシーン
に配置されているボタンから、objAのメソッド@を呼び出す 成功 objAのヒエラルキーでobjBが格納されている これで質問に答えられてますかね? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/160
161: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:03:16.65 ID:y/zeZUnT 遷移したあとの間が少ないとか。トンチンカンかw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/161
162: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:17:06.84 ID:fBJY1RTE >>160 失敗しないし普通に出来る http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/162
163: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:22:17.48 ID:fBJY1RTE てか、何で相互に見れるようにする必要があるの? 無駄が多すぎるだろ DontDestroyOnLoadしたGameObjectを一方的に参照する データ保管庫みたいに切り分けて使えばいいだけじゃない http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/163
164: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:23:12.19 ID:4kYoBCMG うーん…なんでだろう またもう一つ試したのですが、 シーン1で objA に加えて objCを作り、 objCにスクリプトをアタッチし、これもdontdestroyして中に変数を一つ入れておきました シーン1 objA dontdestroyしたオブジェクト | これにアタッチされているスクリプト内でボタン押されたら遷移する処理 | ↓ シーン2へ遷移 objB その遷移処理の後に同スクリプト内の別メソッド
@を呼び出して遷移後のobjBをFind →失敗 ※ ここで今回作ったobjCから参照してみる → 成功 ↑ ↓ 遷移後のシーンに配置されているボタンから、objAのメソッド@を呼び出す 成功 objAのヒエラルキーでobjBが格納されている と、見づらいかもしれませんが同じシーンから持ってき
たオブジェクトに対しては普通にfindもゲットコンポーネントもできました あああああああああわかんね!!!!!!!!!!!!! http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/164
165: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:26:43.61 ID:4kYoBCMG >>163 遷移後にそのまま冒頭のイベント処理みたいなことをやりたくて ならそのまま遷移処理の後に引き続きそのメソッド内である程度指示だして引継ぎすればよくね? でやってみたら遷移後のシーンのオブジェクト参照ができなかったということから質問をしました http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/165
166: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:33:49.05 ID:fBJY1RTE 値の保持に使ってるんじゃないのかよ 何の意味があるんだそれ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/166
167: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:39:00.89 ID:4kYoBCMG 上でも書いてるのですけど本来の目的はそれですが 試してみたところエラーが出たので質問をした ということです http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/167
168: 名前は開発中のものです。 [sage] 2017/12/27(水) 21:48:41.42 ID:fBJY1RTE objAを外から読み書きできるようにしたんだよね? なんでobjAからobjBを見る必要があるのか分からない(出来るけど) http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/168
169: 名前は開発中のものです。 [sage] 2017/12/27(水) 22:33:19.52 ID:UZCkhUUp >>165 シーン遷移時は、前のシーンのオブジェクトを破棄して新たなシーンのオブジェクトを構築する処理が走る この処理が終わらないと新しいシーンのオブジェクトはFindでは見つからない よって、新たなシーンのオブジェクトを見つけたければSceneManager.sceneLoadedデリゲートを使ってシーンのロードが完了してから処理を行う必要がある ちなみにSceneManager.sceneLoadedはロードされたシーンのオブジェクトのAwakeが完了し、Startが呼ばれる前に呼ばれる事
に注意 またこのデリゲートはどのシーンがロードされても呼ばれるから処理内でシーン毎に振り分けるかハンドラをつけ外しするなどの対処が必要 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/169
170: 名無し@キムチ [] 2017/12/27(水) 22:59:24.99 ID:oeXBuupd >>164 遷移後のobjBをFind →失敗 当方の経験ではFindは、そのオブジェクトにアタッチされているスクリプトからでないと、失敗したり成功したりその時々によってさまざまだな。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/170
171: 名前は開発中のものです。 [sage] 2017/12/27(水) 23:23:24.84 ID:Y6rKayv0 なんだやっぱりキムチか http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/171
172: 名前は開発中のものです。 [sage] 2017/12/27(水) 23:29:25.63 ID:9tGAk59e プログラムが成功したり失敗したりなんて挙動するわけない 成功するのも失敗するのも理由がある 理由を理解できていないのにプログラムのせいにするプログラマー http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/172
173: 名前は開発中のものです。 [sage] 2017/12/27(水) 23:56:23.72 ID:2+M/n1Lm >遷移後のシーンに配置されているボタンから、objAのメソッド@を呼び出す 本当に呼び出せている? Find以前の問題だったりして・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/173
174: 名前は開発中のものです。 [sage] 2017/12/28(木) 00:13:29.64 ID:mH5YII84 ボタンからの入力を受けていないだけとかはないですか? UIから、その該当スクリプトへのコールがかかっていないとか? 入力をInputにして、 if?(Input.GetKeyDown?(KeyCode.Space))?{ Debug.Log("Input OK"); GameObject A = GameObject.Find("objA"); Debug.Log(A); } を追加して、 スクリプトが機能しているかどうか、 オブジェクトを取得できているかどうかを確認してみてください http://mevius.5ch.net/test/read.cgi/gamedev/15136
43755/174
175: 名前は開発中のものです。 [sage] 2017/12/28(木) 00:18:44.79 ID:mH5YII84 すみません、objAからobjBの方を見たいんですね objAのスクリプトのUpdate()内に、 if (Input.GetKeyDown (KeyCode.Space)) { Debug.Log("Input OK"); GameObject B = GameObject.Find("objB"); Debug.Log(B); } を追加して、 スクリプトAが機能しているかどうか、 オブジェクトBを取得できているかどうかを確認してみてください ボタンからの呼び出しが届いていないだけであれば、 上記でオブジェクトを取得できるはずですが・・・ シー
ン2では、 objA:DontDestroyによって、シーン1から持ち越し objB ・・・が、Hierarchy上に同時に並んでいるわけですものね? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/175
176: 名前は開発中のものです。 [sage] 2017/12/28(木) 00:34:38.37 ID:mH5YII84 各オブジェクトのそれぞれのスクリプトで行っていることが良く分からないのですが、 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から) Aのメソッド@→A = Find("objB") →OK objB-B.cs ボタン→Aのメソッド@→A = Find("objB")
→OK こういうことなのでしょうか?? A = Find("objB")は、 GameObject A = GameObject.Find("objB");のことです メソッド@を呼ぶタイミングはどうやって遷移後に指定しているのでしょうか? まさか、LoadScene("Scene1")と同じフレーム内で呼んでいないですよね?? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/176
177: 名前は開発中のものです。 [sage] 2017/12/28(木) 00:51:12.79 ID:fQL7hUYb >>169 レス遅れてすみません。 ありがとうございます。 とても参考になり、わかりやすかったです。 結果として、やったことは SceneManager.LoadSceneの直後にSceneManager.sceneLoadedを行って そのデリゲート処理完了後にそれぞれのテストメソッドを呼び出して参照したりしたところ 問題なく参照できました。 >>161にはレスしませんでしたが、当たりだった感じです。 >>170 なるほど。。。他の方々のレスを見る感じ、テスト環境でやっていたのか
もしれないので もしかするとオブジェクト等の量とかでかわるんですかね? >>173 そこは上のレスを書いた時点で確認できていました debug.log等での確認なので精度はわかりませんが http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/177
178: 名前は開発中のものです。 [sage] 2017/12/28(木) 00:56:34.32 ID:fQL7hUYb >>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から) Aのメソッド@→A = Find("objB") →OK * Aのメソッド@→A = Find("objC") →OK です objB-B.cs ボタン→Aのメソッド@→A
= Find("objB") →OK A.Csの中の処理流れは { LoadScene2; gameobject.find(Scene2のobjB) } でBが見つからない ということでした >メソッド@を呼ぶタイミングはどうやって遷移後に指定しているのでしょうか? まさか、LoadScene("Scene1")と同じフレーム内で呼んでいないですよね?? 恐らくそういうことだったんだと思います http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/178
179: 名前は開発中のものです。 [sage] 2017/12/28(木) 01:23:13.78 ID:GhM3Lpso デバッガ使えば5分で分かった事を22時間も掛けて 大した効率だよな http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/179
180: 名前は開発中のものです。 [sage] 2017/12/28(木) 01:43:55.44 ID:mH5YII84 以前、物理演算で、どういう処理だったか忘れたけど、 変数を物理演算に設定した直後に、 同じフレーム内でデバッグログに物理演算結果を出力しようとしたら、 変数が設定された結果が出せなくて、 Invokeで1フレーム後にデバッグログを呼び出したら、出力できたことがあるので、 一度フレームを走らせないといけないポイントで処理を連続してしまうのは、 結構ピットホールになりやすいかもしれない http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/180
181: 名前は開発中のものです。 [sage] 2017/12/28(木) 02:14:32.76 ID:mH5YII84 velocityの変更、positionの変更は、同じフレーム内で取得しても変更が反映されるけど、 例えばAddForceでは、たとえ1フレームで加速するForceMode.Impulseでも、 同じフレーム内ではまだvelocityは速度変更されておらず、 次のフレームでvelocityの変更が反映されるみたい でも、1フレームで移動を行うMovePositionは、 同じフレーム内でpositionの変更が反映されているという・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/181
182: 名前は開発中のものです。 [sage] 2017/12/28(木) 02:20:34.36 ID:aEDu9yFW 全然関係ねえよ オブジェクトの生成と破壊は1フレーム掛かるから後処理は1フレーム待てと言われただろ シーンの呼び出しも同じって>169に言われてんだろ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/182
183: 名前は開発中のものです。 [sage] 2017/12/28(木) 02:49:46.90 ID:mH5YII84 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() { rb.angularVelocity = Vector3.zero; Debug.Log (rb.rotation); D
ebug.Log(rb.rotation.eulerAngles.z); } 本来、Z軸回転に180度/秒を入れて1秒間回転させて止めているわけだから、 Z軸の回転角は180が返るはずだけど、183.6という結果になってしまいます Invoke("A", 1 - Time.fixedDeltaTime)で1フレームは早く呼ぶと、180が返るから、 おそらくInvokeで呼ぶ場合は、1フレーム遅れるんでしょうね・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/183
184: 名前は開発中のものです。 [sage] 2017/12/28(木) 02:51:19.62 ID:ZI2vMH5M 外様が言うのは何だが コードも貼られて実に良スレだな http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/184
185: 名前は開発中のものです。 [sage] 2017/12/28(木) 03:22:50.01 ID:mH5YII84 ごめんなさい、原因が分かったよ Start()から、Log()を呼んでいるからでした・・・ Start()が終了するのに1フレームかかるみたいですね Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); Start2() } void Start2() { rb.angularVelocity = new Vector3(0, 0, 180 * Mathf.Deg2Rad); Invoke ("Log", 1); } void Log() { rb.angularVelocity = Vector3.zero; Debug.Log (rb.rotation); Debug.Log(rb.rotation.eulerAngles
.z); } StartからStart2を呼んで、Start2でangularVelocityを設定すれば、 Start2()からLog()を呼ぶ場合は、1秒指定のInvokeで、ぴったり180でした http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/185
186: 名前は開発中のものです。 [sage] 2017/12/28(木) 03:24:48.63 ID:yHTFG4+0 物理はFixedUpdateのタイムスライスで動いてるから、 Update系とは時間の流れ違うだろ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/186
187: 名前は開発中のものです。 [sage] 2017/12/28(木) 04:43:29.76 ID:NrJHfHro >>185 何の確認もせずに適当な思い込みで妄想しても 的外れなだけじゃないキムチ君w 毎回そんなアホな事をやってるから迷走すんだよ だったらStartとStart2に Debug.Log(Time.frameCount); で実実行時のフレームカウント出してみなよ 両方とも1って出るから http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/187
188: 名前は開発中のものです。 [sage] 2017/12/28(木) 07:27:31.37 ID:yfK1iHQW 161最強!w http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/188
189: 名前は開発中のものです。 [] 2017/12/28(木) 09:26:13.89 ID:fukyqugk 初心者です マテリアル作って保存したらファイル名が勝手に.matから.MATに変わってそのせいで警告が出てる??みたい パソコンのせいなんでしょうか 解決方法分かりませんか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/189
190: 名前は開発中のものです。 [sage] 2017/12/28(木) 09:35:07.71 ID:PGevnyVZ 警告文そのものを貼ってください http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/190
191: 名前は開発中のものです。 [] 2017/12/28(木) 09:53:48.72 ID:fukyqugk 警告で The GUID for assets/アセット名.mat is already in ues by assets/アセット名.MAT. Assigning a new guid. エラーで Refresh case sensitivity failure. Assets:Assets/アセット名.mat ; Metafile:Assets/アセット名.mat.meta です http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/191
192: 名前は開発中のものです。 [sage] 2017/12/28(木) 10:09:16.56 ID:ZI2vMH5M どーせテクスチャをエクスプローラーからコピペして置き換えしたりしてんだろ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/192
193: 名前は開発中のものです。 [sage] 2017/12/28(木) 10:24:27.92 ID:o+JGejkD >>189 君みたいな雑魚にUnityは使いこなせません 10年webで下積みしてから出直してきなさい http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/193
194: 名前は開発中のものです。 [] 2017/12/28(木) 10:45:38.68 ID:fukyqugk >>192 いえ、普通にUnityエディタ内でmaterialを作成してます で真っ白なまま保存しても.matで保存されるんですが少しでも色を変えると保存した時に拡張子が.MATに変わってしまうんです http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/194
195: 名前は開発中のものです。 [sage] 2017/12/28(木) 11:13:08.50 ID:ghF3Rjv1 >>194 ファイル消したりしてるでしょ 元ファイル消したのにmetaファイル消してないから名前が使えない だから別の名前使うね、ってなってる 生成も削除も移動も全てuntiy上で行ってください http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/195
196: 名前は開発中のものです。 [sage] 2017/12/28(木) 11:16:47.13 ID:ghF3Rjv1 てか警告分の内容は理解してる? 中学英語の単語しか無いぞ 英語だからって毛嫌いせず読もうとしてみるの大事 だんだん慣れてくるから http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/196
197: 名前は開発中のものです。 [] 2017/12/28(木) 12:01:44.31 ID:fukyqugk >>195 ありがとうございます、消してしまった気がします… こうなった場合の対処法ってどうすれば良いんですか?調べたんですけど「やらないように注意」みたいにしか書いてなくて… 警告文は1回Google翻訳に突っ込んだ時にルー語で翻訳されてキレそうになりましたw ちゃんと調べてある程度意味はわかりました http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/197
198: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:18:12.10 ID:ghF3Rjv1 >>197 基本的には不要なmetaファイルを消せばいい metaファイルの中を理解することは大変だけどmetaファイルの存在意義を理解することはそこまで難しくはないと思う ググればmetaファイルとはなんぞやって記事いっぱいあるからゆっくり読んでみればいい 全部が理解できなくてもいいから色んな記事を読むといい その過程で色んな知識がつくはず それを繰り返してればそのうち色んなことに対処できるようになる http://mevius.5ch.net/test/read.cgi/gamedev/15
13643755/198
199: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:24:20.51 ID:ghF3Rjv1 >>197 あと警告やエラー文は基本翻訳ソフトに突っ込まないほうがいい 単語の意味を調べる程度にしときな プログラム上で使われる意味合いと英文としての意味合いが異なって余計に混乱することになることが多いと思う GUIDみたいな略語なんかは翻訳仕様がないしね むしろ警告文をそのままググるほうが同じ問題で引っかかった人が解決法とか書いてくれてたりすることもあるからそういうふうに調べたほうがいいよ http://mevius.5ch.net/test/read.cgi/gamedev/15
13643755/199
200: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:36:22.53 ID:epGNZdyE >>185 正確に言うと1フレーム内なんだけど、イベントが呼び出される順番の問題では? Awake Start FixedUpdate Update LastUpdate OnRenderImage OnGUI OnDestroy 同じフレーム内でも、Updateの前にFixedUpdateが来るから、 FixedUpdateの処理が1フレーム分先の内容になっているんだと思う http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/200
201: 名前は開発中のものです。 [] 2017/12/28(木) 12:43:17.39 ID:fukyqugk >>198 >>199 わかりました、また調べてみます 色々とご教示ありがとうございました http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/201
202: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:44:32.49 ID:epGNZdyE Start: Debug.Log Invoke A 0秒 Invoke B 0秒 FixedUpdate: Debug.Log Update: Debug.Log A: Debug.Log B: Debug.Log Invoke AA 0秒 AA: Debug.Log Time.frameCountをDebug.Logすると、全て1になるね (FixedUpdateとUpdateは初回のみDebug.Log) http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/202
203: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:48:38.22 ID:epGNZdyE 実際にやってみると、Debug.Logされる順番は、 @Start AFixedUpdate BA CB DUpdate EAA の順になるので、 @Satrt→BAの間には、FixedUpdateが入っているので、 その間に物理演算の結果が更新されますが、 CB→EAAの間には、FixedUpdateが入らないので、 その間に物理演算の結果は更新されません http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/203
204: 名前は開発中のものです。 [sage] 2017/12/28(木) 12:57:15.87 ID:U/moIC9W ID:ghF3Rjv1の優しさに勃起した http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/204
205: 名前は開発中のものです。 [sage] 2017/12/28(木) 13:14:29.51 ID:ghF3Rjv1 ホモはお帰りください http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/205
206: 名前は開発中のものです。 [sage] 2017/12/28(木) 13:27:13.50 ID:bdqePp8Y >>203 アセットを買うのがいいですよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/206
207: 名前は開発中のものです。 [sage] 2017/12/28(木) 15:02:55.90 ID:YB1B6aLH 質問者が全部キムチなのが問題だ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/207
208: 名前は開発中のものです。 [sage] 2017/12/28(木) 15:24:10.83 ID:tnUbOHhI 何もない所で誰も引っ掛からない孔明の罠に引っ掛かって 大騒ぎするのがキムチ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/208
209: 名無し@キムチ [] 2017/12/28(木) 19:12:09.06 ID:26YsjXJQ >>177 他のオブジェクトのアクティブのtrueはfalse明らかにオブジェクトの量で変わる。 オブジェクトの量を増やすと、それまでtrueはfalseがちゃんと動いていたものが、動かなくなる。 その行の削除するとまたちゃんと動き出すことから、それは明らか。 それを回避するには、オブジェクトごとにスクリプトをつけてそれに書けばアクティブのtrueはfalseは確実に動く。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/209
210: 名無し@キムチ [] 2017/12/28(木) 20:33:48.36 ID:26YsjXJQ 最近わかったんだが、Unityでは基本あるオブジェクトにつけたスクリプトから他のオブジェクトを動かしてはいけないんですね。 あくまでもそのオブジェクトにだけ関するスクリプトであるということ。 MonoBehaviorの「Mono」とはそういう意味なんですね。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/210
211: 名前は開発中のものです。 [sage] 2017/12/28(木) 20:57:02.16 ID:bdqePp8Y 何いってんのこいつw http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/211
212: 名前は開発中のものです。 [] 2017/12/28(木) 21:42:51.63 ID:mWenZKXP NSObjectのNSはNextStepの略だしな http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/212
213: 名前は開発中のものです。 [sage] 2017/12/28(木) 21:51:39.14 ID:VBJfLBcj NSって。。風俗かよwww http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/213
214: 名前は開発中のものです。 [sage] 2017/12/28(木) 22:22:34.63 ID:epGNZdyE >>210 物理演算をつけたオブジェクトは、transform命令では動かさない方が良い 同様に、Rigidbody.positionやRigidbody.rotationも極力直接いじらないほうが良い (なるべく、初期値を設定するだけにしておく) 物理演算をつけたオブジェクトは、原則velocity設定や、 AddForceかAddTorqueで動かさないと、演算に干渉して挙動が不安定になる http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/214
215: 名前は開発中のものです。 [sage] 2017/12/28(木) 23:00:56.25 ID:mH5YII84 >>187 >>200 全部1フレーム内での出来事だったのか >>186 >>200 呼び出される順序の問題で、物理演算をまたいでしまうと、 その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/215
216: 名前は開発中のものです。 [sage] 2017/12/29(金) 09:19:21.34 ID:K0u5BC7r >>214 それはワープになるからな MovePosition使えば大丈夫だよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/216
217: 名前は開発中のものです。 [sage] 2017/12/29(金) 23:42:13.44 ID:qixlPtWp 初心者です。 2Dでジャンプアクションゲームを物理演算で製作中です。 ようやく左右への移動ができるようになったところです。 (Input.GetAxisをvelocityに代入しています) ジャンプの際に、お聞きしたい事があるのですが、 まず地面に接している判定をどうするのか、 ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、 ボタンを押している時間に応じてジャンプを高くしたい (無制限に高くではなく、ジャンプ力には上限を設けたい) などを詳しく解説し
てあるサイトとかありますでしょうか? あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/217
218: 名前は開発中のものです。 [] 2017/12/30(土) 00:35:07.56 ID:5n68sL0m AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる 設置してるかどうかはコリジョンを見れば良いんだよ ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ 数値の上限については、ちゃんとC#らしい書き方ができるといいね http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/218
219: 名前は開発中のものです。 [sage] 2017/12/30(土) 09:26:09.43 ID:sj8HSsvd UNITYの定石としては、アセットを買うことですね http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/219
220: 名前は開発中のものです。 [sage] 2017/12/30(土) 14:20:42.17 ID:LpYIXbLi "物理演算"でやるならVelocityは基本使っちゃだめよ 物理演算を無視した移動だから見た目が物理っぽくなくなるよ キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/220
221: 名前は開発中のものです。 [sage] 2017/12/30(土) 16:10:37.30 ID:DH75+pHx >>217 初心者向けに 2D platformerというジャンプアクションゲームのアセット(無料)がある https://www.assetstore.unity3d.com/jp/#!/content/11228 あとはggれば解説してるとこがあったはず http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/221
222: 217です [sage] 2017/12/30(土) 23:14:59.07 ID:6xEuTupH この時間しかレスできず、大変すみません。 皆さん、いろいろアドバイス下さり、ありがとうございます。 >>218さん >>220さん velocityは直接変えない方がよいんですね。 AddForceでImpuseモードで変更することにしました。 >>219さん >>221さん アセットは魅力的に思っていましたが、導入方法が分からなかったのと、 基本有料と思って、二の足を踏んでいました。 無料のジャンプアセットあるのですね。ためになりました。 >>220さん Character Contro
llerは3D専用の機能かと思って触っていませんでした。 これから勉強します。 http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/222
223: 名前は開発中のものです。 [sage] 2017/12/31(日) 11:58:25.06 ID:YEuDj3bX 物理演算を使って、物理法則に則ったゲームを作成するのか、 物理演算を使って、既存型のゲームを作成するのか、 (コライダーは利用するが、動きは非物理) 物理演算を使わずに、既存型のゲームを作成するのか (旧来のゲームシステム) http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/223
224: 名前は開発中のものです。 [sage] 2017/12/31(日) 12:40:49.59 ID:YEuDj3bX positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり MovePositionによるposition変更は、velocity変更に基づいているので、 比較的安全にコライダーとの衝突計算がなされる velocity変更を行わずに、全てAddForceで行った方が、 より自然な物理演算になるけど、velocityを0にするのが難しくなる AddForceでvelocityを0にしようと逆方向に力を与え続けると、 逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない http://mevius.5c
h.net/test/read.cgi/gamedev/1513643755/224
225: 名前は開発中のものです。 [sage] 2017/12/31(日) 13:07:55.13 ID:YEuDj3bX 2Dで地面との接触判定を行うのであれば、 ・IsTouching,IsTouchingLayers 他のコライダーやレイヤーとの接触を検出する方法 (全方向からの接触を検出してしまう) ・Physics2D.OverlapArea,Physics2D.OverlapBox 配置した矩形が接触したコライダーを検出する方法 (OverlapAreaとOverlapBoxは矩形の設定方法が異なる) ・Physics2D.Linecast 配置した線分が接触したコライダーを検出する方法 (RayCastとは異なり、直線ではなく長さを持つ線分) ・
Physics2D.BoxCast,Physics2D.RayCast 放射した直線が接触したコライダーを検出する方法 (BoxCastはRayCastの先端が矩形) IsTouching系は、Collider2D.(自分との判定)とPhysics2D.(2者間の判定)がある Cast系は投射方向を指定できるが、投射前に接触していると検出されないのが難点 LineCastやRayCastは線のため太さがなく、幅を持つコライダーでは複数本が必要 OverlapBoxと違って、Physics.CheckBoxは、2Dでは使えない http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/225
226: 名前は開発中のものです。 [] 2017/12/31(日) 18:15:19.74 ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。 グーグル検索⇒『来島のモノノリウエ』 WQFIUEMH6C http://mevius.5ch.net/test/read.cgi/gamedev/1513643755/226
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 776 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s