[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart16 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart16 http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
458: 名前は開発中のものです。 [sage] 2025/03/18(火) 15:31:51.43 ID:QNX4HnNW 曖昧な発言する雑なやつが何で威張ってんの http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/458
459: 名前は開発中のものです。 [sage] 2025/03/18(火) 16:14:51.76 ID:yU/sQVqt >>458 それ君w http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/459
460: 名前は開発中のものです。 [sage] 2025/03/18(火) 17:28:29.76 ID:E1ZcQ+uo 240 FPS出そうと思ったら、フレーム辺り4ms強しかないからな http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/460
461: 名前は開発中のものです。 [sage] 2025/03/18(火) 18:41:26.38 ID:PmhHb3Ev 現在のスクリプトのフルパスを返す関数があるのですけど、 それの一個親のフォルダ名を取得するのはどうしたらいいですか /でsplitして最後のアイテムを消すしかない? http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/461
462: 名前は開発中のものです。 [sage] 2025/03/18(火) 18:55:35.42 ID:phvr3KFu >>461 Path.GetDirectoryName()で取れる http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/462
463: 名前は開発中のものです。 [sage] 2025/03/18(火) 18:57:51.16 ID:GOtEBAFE >>460 えっ? http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/463
464: 名前は開発中のものです。 [] 2025/03/18(火) 19:04:36.79 ID:UdWYMzyu >>462 いや、 string filePath = @"C:\hoge\fuga\hoga.txt"; に対してPath.GetDirectoryName(filePath)すると @"C:\hoge\fuga" が取れる >>461が欲しがってるのはfugaの部分だけじゃない? /と\が混在してる場合を考慮して string filePathSplited = Path.GetDirectoryName(filePath).Replace("/", "\\").Split('\\'); string dirName = filePathSplited[filePathSplited.Length - 1]; あるいはSystem.Linqを使えば filePath.Replace("/", "\\").Split('\\').Last(); http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/464
465: 名前は開発中のものです。 [] 2025/03/18(火) 19:07:30.14 ID:UdWYMzyu >>463 1秒は1000msだから 1000 / 240 = 4.16666667 1フレームあたり4ms強 http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/465
466: 名前は開発中のものです。 [sage] 2025/03/18(火) 20:26:15.96 ID:KSYQbbOt >>464 そんな面倒なことしなくてもGetFileNameとかでいけるのでは? パス操作でSplit使うのは最終手段 http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/466
467: 名前は開発中のものです。 [] 2025/03/18(火) 20:43:08.35 ID:2C3TH5ss >>466 GetFileNameだとhoga.txtが取れてしまう fugaの部分だけを取りたいなら回りくどいけど>>464の方法くらいしか思いつかん・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/467
468: 名前は開発中のものです。 [] 2025/03/18(火) 20:44:59.12 ID:2C3TH5ss もっとキモい話になるけど、Path.GetDirectoryNameはディレクトリパスだけを返してくれる便利な魔法の関数などではなく \または/で区切って最後の部分を除外した文字列を返す("C:\hoge\fuga\hoga.txt"→"C:\hoge\fuga") だけで、Path.GetFileNameも同じく \または/で区切って最後の部分のみ返す("C:\hoge\fuga\hoga.txt"→"hoga.txt") だけなので、理論的には Path.GetFileName(Path.GetDirectoryName("C:\hoge\fuga\hoga.txt")) でfugaの部分を取れるっちゃ取れる でも流石にコレはキモすぎるから>>464かなあ、正直微妙だけど http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/468
469: 名前は開発中のものです。 [] 2025/03/18(火) 20:45:44.30 ID:d603JaOd DirectoryInfoとか http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/469
470: 名前は開発中のものです。 [] 2025/03/18(火) 20:54:32.14 ID:2C3TH5ss >>469 string filePath = @"C:/hoge/fuga/hoga.txt"; DirectoryInfo di = new DirectoryInfo(filePath); Console.WriteLine ($"di.Name={di.Name}"); Console.WriteLine ($"di.FullName={di.FullName}"); Console.WriteLine ($"di.Parent.Name={di.Parent.Name}"); // これでfuga取れたわ Console.WriteLine ($"di.Parent.FullName={di.Parent.FullName}"); 三月 http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/470
471: 名前は開発中のものです。 [sage] 2025/03/18(火) 21:20:55.93 ID:KSYQbbOt 自分が想像してたのは正にそのGetDirectoryNameしてGetFileNameだった 確かにキモいっちゃキモいね でもDirectoryInfoが一番しっくりくるし知れてよかった http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/471
472: 名前は開発中のものです。 [sage] 2025/03/18(火) 22:42:01.99 ID:PmhHb3Ev >>461ですが けっきょく当該ファイルを1個下(取得できているパス)に移動することで対処しました ありがとうございます http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/472
473: 名前は開発中のものです。 [sage] 2025/03/18(火) 22:57:09.30 ID:m9QFBZXL >>472 よかったね http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/473
474: 名前は開発中のものです。 [] 2025/03/19(水) 15:24:38.86 ID:POwZfcZS >>448 なんだテメーは? ラムダ式が匿名関数だからワイが関数名を命名してやったのに合わせてやれよってどういう意味だよ? 何に何を合わせるんだよ?喧嘩売ってんのかこら?ぶっ◯すぞ?m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン! http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/474
475: 名前は開発中のものです。 [sage] 2025/03/20(木) 11:35:09.36 ID:zYh3iRuS コールチンの件ですけど 処理1; ←重い 処理2; 処理3; と列記したときに、処理1がたまたま重いー処理だったときに 処理2と3が先に実行されてしまうことがあるって話なんですか? つまり処理1の結果をうけて次の処理にいきたいときは、処理1はコールチンにするべきってことです? http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/475
476: 名前は開発中のものです。 [] 2025/03/20(木) 12:34:26.26 ID:nGIipXCH 同期処理で処理2,3が先に実行されることなんてありえないね! コルーチンは非同期処理だから重い処理1を後回しにしたいならコルーチンにして先に処理2,3を実行することはできるね! 処理1の結果を受けて処理2,3をしたいならコルーチンにしちゃ駄目だね!m9⎛´・ω・`⎞ドーン! http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/476
477: 名前は開発中のものです。 [] 2025/03/20(木) 12:39:59.36 ID:Xoz1ZXil private void Hoge() { StartCoroutine(Test1Coroutine()); StartCoroutine(Test2Coroutine()); StartCoroutine(Test3Coroutine()); } private IEnumerator Test1Coroutine() { // 3秒かかる処理 Debug.Log("Test1"); } private IEnumerator Test2Coroutine() { // 1秒かかる処理 Debug.Log("Test2"); } private IEnumerator Test3Coroutine() { // 2秒かかる処理 Debug.Log("Test3"); } これなら1秒ごとにTest2→Test3→Test1の順で出力される http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/477
478: 名前は開発中のものです。 [] 2025/03/20(木) 12:40:37.11 ID:Xoz1ZXil private void Hoge() { StartCoroutine(HogeCoroutine()); } private IEnumerator HogeCoroutine() { yield return Test1Coroutine(); yield return Test2Coroutine(); yield return Test3Coroutine(); } private IEnumerator Test1Coroutine() { // 3秒かかる処理 Debug.Log("Test1"); } private IEnumerator Test2Coroutine() { // 1秒かかる処理 Debug.Log("Test2"); } private IEnumerator Test3Coroutine() { // 2秒かかる処理 Debug.Log("Test3"); } これならHoge実行から3秒後にTest1→その1秒後にTest2→その2秒後にTest3の順で出力される http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/478
479: 名前は開発中のものです。 [sage] 2025/03/20(木) 22:13:27.49 ID:s5/NtbIK コルーチンにはコルーチンを待つって条件無かった? http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/479
480: 名前は開発中のものです。 [sage] 2025/03/20(木) 23:13:40.30 ID:/JzYXGd0 コルーチンはyieldで区切られた処理単位をメインスレッドで直列に実行するだけだぞ http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/480
481: 名前は開発中のものです。 [sage] 2025/03/20(木) 23:38:03.94 ID:zYh3iRuS つまりコルニチンを使わなければシーケンスアルに実行されるのに、 コルニチンにすることで処理が追い抜かれることが起きるわけですよね? http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/481
482: 名前は開発中のものです。 [sage] 2025/03/21(金) 00:15:47.61 ID:OEL1/eUp これでええやん yield return StartCoroutine() 指定したコルーチンを実行、完了するまで後続処理は行わない http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/482
483: 名前は開発中のものです。 [sage] 2025/03/21(金) 11:27:39.44 ID:ukk4lTuB >>475に関してはだいたいわかりましたが より具体的な話にうつりますけど、 LerpとかSlerpで、たとえば発射したミサイルが飛んでいく動きをつくったとき、 ゴール到達までwhileループしてたら他の処理が全てとまってしまうのでコルニチンを使うということでいいですか そしてたくさんのミサイルを発射するからにはコルチニンがたくさん並列で起動されるでいいですか http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/483
484: 名前は開発中のものです。 [sage] 2025/03/21(金) 11:37:38.64 ID:eYqTNLdw いいですお http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/484
485: 名前は開発中のものです。 [sage] 2025/03/21(金) 11:43:44.27 ID:ukk4lTuB ただちょっと不思議に思うのは、爆発エフェクトとかいちいちコールチンにしてませんよね? ふつうに並列処理されてるのはどんな仕掛けなんですかね あとだし質問ばかりですみません http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/485
486: 名前は開発中のものです。 [] 2025/03/21(金) 11:45:25.80 ID:yn0zvw4V 彡 ⌒ ミ ⎛´・ω・`⎞ ワイのコルニチンがコンニチハ したいってさ! /⌒ヽ_.ィ、 ( r. ) ヽノノー二二つ <コルチニン!ドーン! |__/_/ └一'一 http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/486
487: 名前は開発中のものです。 [] 2025/03/21(金) 11:47:42.30 ID:gcT/UM3+ 爆発エフェクトってParticleSystemコンポーネントとか? それはParticleSystem.Play()を実行したらParticleSystemが内部で実装してるコルーチンなりMonoBehaviour.Updateが実行されてるという認識でいいんでない http://mevius.5ch.net/test/read.cgi/gamedev/1739489419/487
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 515 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s