[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
433: 03/17(月)10:11 ID:OiIjNzua(1)調 AAS
>>432
やめたれww
434: 03/17(月)13:10 ID:mT2GCUJZ(1)調 AAS
普通にユニティー利用者が減りそうなスレだなあーあ
435: 03/17(月)13:19 ID:A17rJDf2(1)調 AAS
教えて君が死ぬだけでは?
436: 03/17(月)14:10 ID:q5KZRby3(1)調 AAS
教えてくんは答えを求めるより問う力が必要
437: 03/17(月)14:50 ID:v99msUeP(1)調 AAS
問うということは問うということです。
438: 03/17(月)18:07 ID:r8mHMuNp(1)調 AAS
進次郎さんだ
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かなあ、正直微妙だけど
469
(1): 03/18(火)20:45 ID:d603JaOd(1)調 AAS
DirectoryInfoとか
470: 03/18(火)20:54 ID:2C3TH5ss(3/3)調 AAS
>>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}");
三月
471: 03/18(火)21:20 ID:KSYQbbOt(2/2)調 AAS
自分が想像してたのは正にそのGetDirectoryNameしてGetFileNameだった
確かにキモいっちゃキモいね
でもDirectoryInfoが一番しっくりくるし知れてよかった
472
(1): 03/18(火)22:42 ID:PmhHb3Ev(5/5)調 AAS
>>461ですが
けっきょく当該ファイルを1個下(取得できているパス)に移動することで対処しました
ありがとうございます
473: 03/18(火)22:57 ID:m9QFBZXL(1)調 AAS
>>472
よかったね
474: 03/19(水)15:24 ID:POwZfcZS(1)調 AAS
>>448
なんだテメーは?
ラムダ式が匿名関数だからワイが関数名を命名してやったのに合わせてやれよってどういう意味だよ?
何に何を合わせるんだよ?喧嘩売ってんのかこら?ぶっ◯すぞ?m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
475
(2): 03/20(木)11:35 ID:zYh3iRuS(1/2)調 AAS
コールチンの件ですけど

処理1; ←重い
処理2;
処理3;

と列記したときに、処理1がたまたま重いー処理だったときに
処理2と3が先に実行されてしまうことがあるって話なんですか?
つまり処理1の結果をうけて次の処理にいきたいときは、処理1はコールチンにするべきってことです?
476: 03/20(木)12:34 ID:nGIipXCH(1)調 AAS
同期処理で処理2,3が先に実行されることなんてありえないね!
コルーチンは非同期処理だから重い処理1を後回しにしたいならコルーチンにして先に処理2,3を実行することはできるね!
処理1の結果を受けて処理2,3をしたいならコルーチンにしちゃ駄目だね!m9⎛´・ω・`⎞ドーン!
477: 03/20(木)12:39 ID:Xoz1ZXil(1/2)調 AAS
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の順で出力される
478: 03/20(木)12:40 ID:Xoz1ZXil(2/2)調 AAS
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の順で出力される
479: 03/20(木)22:13 ID:s5/NtbIK(1)調 AAS
コルーチンにはコルーチンを待つって条件無かった?
480: 03/20(木)23:13 ID:/JzYXGd0(1)調 AAS
コルーチンはyieldで区切られた処理単位をメインスレッドで直列に実行するだけだぞ
481: 03/20(木)23:38 ID:zYh3iRuS(2/2)調 AAS
つまりコルニチンを使わなければシーケンスアルに実行されるのに、
コルニチンにすることで処理が追い抜かれることが起きるわけですよね?
482: 03/21(金)00:15 ID:OEL1/eUp(1)調 AAS
これでええやん

yield return StartCoroutine() 指定したコルーチンを実行、完了するまで後続処理は行わない
483: 03/21(金)11:27 ID:ukk4lTuB(1/3)調 AAS
>>475に関してはだいたいわかりましたが
より具体的な話にうつりますけど、

LerpとかSlerpで、たとえば発射したミサイルが飛んでいく動きをつくったとき、
ゴール到達までwhileループしてたら他の処理が全てとまってしまうのでコルニチンを使うということでいいですか
そしてたくさんのミサイルを発射するからにはコルチニンがたくさん並列で起動されるでいいですか
484: 03/21(金)11:37 ID:eYqTNLdw(1)調 AAS
いいですお
485: 03/21(金)11:43 ID:ukk4lTuB(2/3)調 AAS
ただちょっと不思議に思うのは、爆発エフェクトとかいちいちコールチンにしてませんよね?
ふつうに並列処理されてるのはどんな仕掛けなんですかね
あとだし質問ばかりですみません
486: 03/21(金)11:45 ID:yn0zvw4V(1/3)調 AAS
  彡 ⌒ ミ   
  ⎛´・ω・`⎞ ワイのコルニチンがコンニチハ したいってさ!
  /⌒ヽ_.ィ、
 ( r.     )
  ヽノノー二二つ <コルチニン!ドーン!
   |__/_/
   └一'一
487: 03/21(金)11:47 ID:gcT/UM3+(1)調 AAS
爆発エフェクトってParticleSystemコンポーネントとか?
それはParticleSystem.Play()を実行したらParticleSystemが内部で実装してるコルーチンなりMonoBehaviour.Updateが実行されてるという認識でいいんでない
488: 03/21(金)11:59 ID:ukk4lTuB(3/3)調 AAS
つてことは、関数が入れ子になっていて奥にコルニチンが隠れている可能性もあるんですか?
そういうのがあると元の>475の例でいうと 処理1の子関数にコルチニンがあるから順番がおかしくなったのかも?
489: 03/21(金)13:04 ID:HnT0R90J(1/2)調 AAS
timeline上であるオブジェクトをアニメーション1で原点から移動させた後アニメーション2に遷移させるとまた原点に戻ってしまいます
アニメーション2をクリックして手動で開始点をアニメーション1の終了地点に合わせれば原点に戻らずその場でアニメーション2に遷移させられますが不便です
アニメーション1をループさせるときのbake into poseをオフにするようなうまい設定はありませんか
490
(1): 03/21(金)13:23 ID:yn0zvw4V(2/3)調 AAS
ルートモーションを適用にチェック入れればいいだけちゃうかな?m9⎛´・ω・`⎞ドーン!
491: 03/21(金)15:19 ID:HnT0R90J(2/2)調 AAS
>>490
もちろんチェック済です
492: 03/21(金)18:17 ID:rL/gXI3i(1)調 AAS
なんでこうも執拗にコルニチンと言ってるの?
なんかの病気なの?
493: 03/21(金)19:51 ID:0rAWX75D(1)調 AAS
一時期、韓国推し案件でTVやマンガでサムゲターンって叫んでいたように知名度を上げる作戦じゃね
どっちにしろスルーが吉
494
(1): 03/21(金)22:03 ID:yn0zvw4V(3/3)調 AAS
今日も元気だ暴飲暴食!孤独のグルメで豪遊してきた!
コルニチン弁当!サラダ!レモンサワー350リットル!これでたったの580円!m9⎛´・ω・`⎞ドーン!
i.imgur.com/3ffxEqL.jpeg
495: 03/21(金)22:55 ID:u5pKBAxd(1)調 AAS
>>494
うまそー
496
(3): 03/22(土)07:34 ID:a1DtXbGq(1)調 AAS
今日も元気だ暴煙暴煙!コルニチンで豪遊してきた!
コルチニン定食!コルンチンビール500リットル!ニコチン5キログラム!m9⎛´・ω・`⎞y-~~ドーン!
i.imgur.com/wjJGvQH.jpeg
497: 03/22(土)07:37 ID:4Cj8QHQZ(1)調 AAS
>>496
ハゲとるやないか!
498: 03/22(土)08:49 ID:nZtSht62(1)調 AAS
>>496
ええやん
499: 03/22(土)10:00 ID:owAVBbXk(1)調 AAS
うんハゲとる
500: 03/22(土)10:31 ID:j/uTIagY(1/3)調 AAS
このハゲー!
501: 03/22(土)10:46 ID:ShtmUU8B(1)調 AAS
>>496
ハゲた罪で逮捕する
🤓✨
502
(1): 03/22(土)11:59 ID:531s6+ac(1)調 AAS
なぜ人類はハゲから逃れられないのか
503: 03/22(土)13:18 ID:wVsUbrtV(1)調 AAS
お前らつまんねえなm9⎛´・ω・`⎞ドーン!
504: 03/22(土)15:51 ID:j/uTIagY(2/3)調 AAS
>>502
ハゲ故に髪あり。
505: 03/22(土)19:09 ID:cx1IzYj+(1)調 AAS
人間40、50年も生きてりゃ髪も薄くなって当たり前
いい年してんフサフサなのは逆に非自然で違和感あるんだよ
506: 854 03/22(土)19:18 ID:duyqT1Qp(1)調 AAS
非自然じゃなくて不自然だろ

いや、歳いってても白髪でふさふさなんか普通に居るが何言ってんの?
507: 03/22(土)21:12 ID:7Znpt4XU(1)調 AAS
察してやれよ
508: 03/22(土)21:52 ID:gAWXr0fT(1)調 AAS
そうか・・・ドーンもハゲだったのか・・・
509: 03/22(土)22:33 ID:j/uTIagY(3/3)調 AAS
命名、ハゲマル・ドーン!
510: 03/22(土)22:54 ID:yhe9Wx8M(1)調 AAS
髪って必要ですか?
511: 03/22(土)23:02 ID:MJNt2jV2(1)調 AAS
何の話してるんだ?
512: 03/23(日)00:07 ID:dheaeGOv(1)調 AAS
👴「ドーン!」
513: 03/23(日)03:59 ID:Or3M3hCp(1)調 AAS
ハゲたジジイがドーンとか言ってはしゃいでるのか草
514: 03/23(日)06:55 ID:A4ZG2hNm(1)調 AAS
なんでハゲと分かったの?どゆこと?
515: 03/23(日)14:33 ID:4tBV0kQC(1)調 AAS
マルハゲ・ドーンおじ
516: 03/23(日)15:25 ID:6P4gOWl2(1)調 AAS
Terrain toolboxでTerrainを分割(Terrain Utilities -> Terrain Edit -> Split)すると、地面のテクスチャUVが分割境界で連続にならず不自然になるんだが
このテクスチャUVを縫合するにはどうしたらいいんだ?
517: 03/23(日)22:51 ID:CIVayqkY(1)調 AAS
ハゲでも清潔感あるハゲと不潔なハゲがあるんだよな
髪の質が見た目を左右するのかな
デブハゲは後者の割合が高い気がする
518: 03/23(日)23:49 ID:DK7G4FDP(1)調 AAS
デブハゲとかどんな転生ミスだよ
しかもフケだらけな印象やな

ドーンおじ終わったな
519: 03/24(月)01:11 ID:jOyx0/R3(1)調 AAS
なんでドーンおじ=ハゲになってるんだ?
520: 03/24(月)01:32 ID:Xbr/L+PL(1)調 AAS
ハゲだから
521: 03/24(月)05:08 ID:IPserjWR(1)調 AAS
ワイは5chプレミアム会員だから、シークレットワッチョイで自演が全部わかるんだよ!m9⎛´・ω・`⎞ドーン!
522: 03/24(月)07:06 ID:CMo6hwUh(1)調 AAS
ニコ生のプレミアム会員とかも入っていそう
523: 03/24(月)10:54 ID:GEMITg0U(1/2)調 AAS
ワイはニコニコ動画が大っ嫌いなんだよ!動画検索でニコ動が出るとイラっとするんだよ!
ハッキングされて消えた時はめっちゃうれしかったね!Youtubeはプレミア会員だよ!
ネトフリも入ってるよ!アマプラも入ってるよ!日本発祥のサービスは例外なくクソ&クソ!全く使ってない!m9⎛´・ω・`⎞ドーン!
524: 03/24(月)12:56 ID:qCmARcOT(1)調 AAS
そう言って日本発祥の匿名掲示板を使ってるのツンデレで可愛い
525: 03/24(月)13:02 ID:GEMITg0U(2/2)調 AAS
5chなんてもう何十年も使ってねえよ!どんぐりがどーこー出て書き込めねえんだよ!m9⎛´・ω・`⎞ドーン!
526: 03/24(月)19:06 ID:LWTX4w1H(1/4)調 AAS
質問です

人形キャラクターのSoftJointのConfigureJointの

joint.angularYLimit.limit をログ出力すると20と返ってくるのですが

joint.angularYLimit.limit = 10f; というふうに値を変更しようとしてもエラーになってしまう

異常よろしくおねがいします
527: 03/24(月)19:08 ID:LWTX4w1H(2/4)調 AAS
エラー内容としては

Cannot modify a value type return value of `UnityEngine.ConfigurableJoint.angularYLimit'. Consider storing the value in a temporary variable

って感じです
528
(1): 03/24(月)19:29 ID:LWTX4w1H(3/4)調 AAS
下のは検索してて見つけたまったく別のケースですが、なにか心にひっかかるヒントを感じるんです
たしかtransformのxyzを代入するときもじかに入れられませんよね

「どうすればいいかは、JointMotorのマニュアルのサンプルコードのように、
代入して値を変更した後、再度HingeJoint.motorに再代入すればいいでしょう。」

JointMotor motor = Joint.motor;
motor.targetVelocity = 360;
Joint.motor = motor; // 再代入
529
(1): 03/24(月)19:35 ID:SuGM3xrp(1)調 AAS
書いている間に正解にたどり着いてるけど一応…

SoftJointLimitはクラスなんですが、プロパティになっているのでメンバーの変更ができません
なので 528 で正解
クラス/構造体ごと取得して、メンバーを更新して、書き戻す必要がある

↓ これ

//
// 概要:
// Boundary defining upper rotation restriction, based on delta from original rotation.
public SoftJointLimit highAngularXLimit
{
get
{
get_highAngularXLimit_Injected(out var ret);
return ret;
}
set
{
set_highAngularXLimit_Injected(ref value);
}
}
530: 03/24(月)20:03 ID:LWTX4w1H(4/4)調 AAS
>>529
うまくやれましたありがつございます

SoftJointLimit ylimit = joint.angularYLimit;
ylimit.limit =0f;
joint.angularYLimit = ylimit ;

これで値が変えるられました
ただし0にはできるけど 1 や 2を指定すると勝手に3になり
180を指定すると177になります
まあ細かいことはいいですね
531: 03/24(月)22:31 ID:7GAJuH5v(1)調 AAS
ドーンおじ答えられなくてUEスレいくとは情けない
532: 03/25(火)01:10 ID:hWKR9pmB(1)調 AAS
あらほんとだ
技術的な話になると逃げるところがあるなw
1-
あと 470 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s