[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart16 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
439: 03/18(火)04:44 ID:B0NlRmSu(1) AAS
今日も元気だ暴飲暴食!キャバクラで豪遊してきた!
柿の種!魚肉ソーセージ!レモンサワー350リットル!これでたったの198円!ということは198円ということだ!m9⎛´・ω・`⎞ドーン!
i.imgur.com/BMWNq4V.jpeg
440: 03/18(火)07:16 ID:E1ZcQ+uo(1/4) AAS
ゴミしかいなくなったのか、ここ
441: 03/18(火)07:39 ID:HAK2u94N(1) AAS
1読めば解決
442: 03/18(火)07:45 ID:E1ZcQ+uo(2/4) AAS
一部のゴミどもの所為でUnity質問スレが機能していないのはゲ製版としては痛手だな
俺も質問したい
443: 03/18(火)07:49 ID:E1ZcQ+uo(3/4) AAS
×ゲ製版
〇ゲ製板
444: 03/18(火)08:39 ID:PmhHb3Ev(1/5) AAS
唐突ですが質問です
GetComponentsInChildren<Canvas>().FirstOrDefault(c => c.gameObject.name == "Main");
この意味が全くわからないんですが
ラムダ式ではない表現はできますか
445: 03/18(火)09:05 ID:aDh1xtQs(1) AAS
Canvas FindMainCanvas(GameObject parentObject)
{
Canvas[] canvases = parentObject.GetComponentsInChildren<Canvas>();
foreach (Canvas canvas in canvases)
{
if (canvas.gameObject.name == "Main")
{
return canvas;
}
}
}//m9⎛´・ω・`⎞ドーン!
446: 03/18(火)09:19 ID:t0GIYjHt(1/2) AAS
できる
何をやってるか? は実行するスクリプトとその下の全gameobjectから Mainという名前の着いてるcanvasコンポーネントの抽出
わざわざメソッド作るまでもないからラムダのままでよくね?
447(1): 03/18(火)09:23 ID:PmhHb3Ev(2/5) AAS
おー、理解できたは
canvasがすでにある前提でそれを探してるのか!
ありがとう
448(1): 03/18(火)09:36 ID:DiFYRPfA(1) AAS
ドーンおじの関数名が妥当たけど、せっかくなら合わせてやれよ
449: 03/18(火)09:40 ID:t0GIYjHt(2/2) AAS
>>447
canvasが無ければnullが返るよ
first or default はクラスが対象だと 最初に見つけたものかnull
450: 03/18(火)10:01 ID:CiYy2RAM(1) AAS
LINQは負荷高いけど便利だから覚えて損無いと思うよ
451: 03/18(火)13:12 ID:gLHpA01b(1/3) AAS
ゲーム開発から逸れるがLINQ使わない開発なんてあるの?
趣味ならまだしも仕事だと積極的に使えと言われる
452: 03/18(火)13:14 ID:gLHpA01b(2/3) AAS
Unityは古いバージョンのC#だからいまだにforeachとかでループ回すレガシーな書き方を好むプログラマも多そうな印象
453: 03/18(火)13:17 ID:3FO5OPQZ(1) AAS
個人的にはエディタの拡張機能ではLINQ使ってるけどリリースビルドには一切含めないようにしてる
LINQは使うたびにGCが過剰に発生するのが負荷が高いと言われる所以だから
作ってるゲームがそれを許容できるかによる
454: 03/18(火)13:18 ID:PmhHb3Ev(3/5) AAS
LINQ重いから
知ったかクライアントは仕様書で禁止してくるよ
455: 03/18(火)13:42 ID:gLHpA01b(3/3) AAS
ゲーム開発で使うとしたらエディタとか初期化に限られるよねやっぱり
業務アプリでも呼び出し頻度高いところとか大量データ処理する所では使わないようにしてる
456: 03/18(火)14:19 ID:iKQuGUKe(1) AAS
「距離の判定でルート使ったところで1msもかからん」って言ったら自称開発者が「1msも変わったらヤバイだろ」って突っ込んできたんだけどこいつほんとに開発者か?ってなってる
「1msも変わらん」って言葉の真意は1ms以下で無視できるレベルで小さい(実際は0.1ms程度)って伝わらないんか
というか距離の判定で1msかかるのは設計ミスやろ
457: 03/18(火)14:25 ID:DhM0KiUV(1) AAS
API単位だと1msと0.001msでかなり意味違うから額面通り受け取られたら普通にツッコまれる
Instantiateくらい重い処理なら別だけど
458(1): 03/18(火)15:31 ID:QNX4HnNW(1) AAS
曖昧な発言する雑なやつが何で威張ってんの
459: 03/18(火)16:14 ID:yU/sQVqt(1) AAS
>>458
それ君w
460(1): 03/18(火)17:28 ID:E1ZcQ+uo(4/4) AAS
240 FPS出そうと思ったら、フレーム辺り4ms強しかないからな
461(3): 03/18(火)18:41 ID:PmhHb3Ev(4/5) AAS
現在のスクリプトのフルパスを返す関数があるのですけど、
それの一個親のフォルダ名を取得するのはどうしたらいいですか
/でsplitして最後のアイテムを消すしかない?
462(1): 03/18(火)18:55 ID:phvr3KFu(1) AAS
>>461
Path.GetDirectoryName()で取れる
463(1): 03/18(火)18:57 ID:GOtEBAFE(1) AAS
>>460
えっ?
464(3): 03/18(火)19:04 ID:UdWYMzyu(1/2) AAS
>>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();
465: 03/18(火)19:07 ID:UdWYMzyu(2/2) AAS
>>463
1秒は1000msだから
1000 / 240 = 4.16666667
1フレームあたり4ms強
466(1): 03/18(火)20:26 ID:KSYQbbOt(1/2) AAS
>>464
そんな面倒なことしなくてもGetFileNameとかでいけるのでは?
パス操作でSplit使うのは最終手段
467: 03/18(火)20:43 ID:2C3TH5ss(1/3) AAS
>>466
GetFileNameだとhoga.txtが取れてしまう
fugaの部分だけを取りたいなら回りくどいけど>>464の方法くらいしか思いつかん・・・
468: 03/18(火)20:44 ID:2C3TH5ss(2/3) AAS
もっとキモい話になるけど、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かなあ、正直微妙だけど
上下前次1-新書関写板覧索設栞歴
あと 534 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.013s