[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
953
(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 12:12:40.81 ID:65C13n6s(3/4) AAS
>>952
952(1): 名前は開発中のものです。 [] 2020/01/09(木) 12:00:30.94 ID:AbIkBBD9(1/2) AAS
1つでもfalseならリターンすればいい
そうすりゃ無駄な変数いらんよ
あとfor で回す場合、<変数.lengthが使えるから増えても問題なし
count <= 2 の 2の部分を変数.lengthにするという事でしょうか?思いつきませんでした!

もし宜しければ
一つでもfalseなら〜の書き方を教えて頂けませんか?
954: 名前は開発中のものです。 [sage] 2020/01/09(木) 12:23:32.35 ID:sMXCo4Ih(1) AAS
とりあえず動けばいいって感じ?
955
(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 12:47:54.85 ID:8Z9bXpy1(1) AAS
>>953
画像リンク

956: 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:02.96 ID:AbIkBBD9(2/2) AAS
あとList型に入れると簡単にあるかないか取れるけど、どうなんだろね
画像リンク

957
(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:06.70 ID:h4Av5g/u(1) AAS
false、trueを入れるときに、変数にして+1、-1しとけばいいやん。0以下なら全部true。
不安なら、たまに時間の許す処理の時にチェックサム。
958: 名前は開発中のものです。 [sage] 2020/01/09(木) 13:17:26.76 ID:65C13n6s(4/4) AAS
>>955
ありがとうございます!
この短いコードの中に何故forとifの間に{が必要ないのか、(!b[i])が既にboolを表している等、普通に勉強してたら気付かない事ばかりで尊敬します。。
いつかこういうスマートで格好いいコードが書ける様に頑張ります!
959: 名前は開発中のものです。 [sage] 2020/01/09(木) 15:42:48.73 ID:ZRX+0Tcv(1) AAS
そこ省略すれば偉いってもんでもないから気をつけてな
コード長くなってくるとこういうとこはすっきり書いたほうが読みやすくはなるけど
960: 名前は開発中のものです。 [sage] 2020/01/09(木) 18:15:25.24 ID:IB4d3PvK(1) AAS
containsで行けるような

bool[] src = {true, true, false, true};
var list = new List<bool>();
list.AddRange(src);

bool item = false;

if (list.Contains(item)) { /////////////////////////////////////←これ
 System.Console.WriteLine("{0}が見つかりました", item);
} else {
 System.Console.WriteLine("{0}は見つかりませんでした", item);
}
961
(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 21:40:32.44 ID:L8tG5HPm(1) AAS
>>950
950(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 11:16:55.09 ID:bvBlalIf(1) AAS
配列数が固定ならFlags付けたenumでビットフラグ使う

動的に増減するなら設計がおかしいんだがLINQのAllを使えば簡単に書ける
ゲームでLinqは悪手
962: 名前は開発中のものです。 [sage] 2020/01/09(木) 23:26:31.33 ID:2OZqFXaj(1) AAS
>>945
945(1): 名前は開発中のものです。 [sage] 2020/01/09(木) 01:04:08.75 ID:9Vcb+knu(1) AAS
そこでJobSystem,Burst,ECSですよ
946
サンキュー、そういうの教えてもらえるのは、本当に有意義だわ。
自分にはまだ早いので、しばらくベタで悪戦苦闘して経験値つんでからトライするわ。

現在、物理ゲームパッドで遊んでもらう想定で作ってるけど、一応スマホ画面操作に対応しようと思い、
新しい InputSystem で、Canvas の UI ボタンを使ってスマホ画面操作用のコントローラ作ったけど、
一つもコード書かずに物理ゲームパッド想定のゲームにマッピング出来た。InputSystem 凄い。

でもスマホ画面操作でBダッシュジャンプって超絶むずいね、物理コントローラーなら楽勝でBダッシュジャンプ出来るのに…
963
(1): 名前は開発中のものです。 [] 2020/01/10(金) 11:30:27.01 ID:08GLxpkh(1/4) AAS
>>961
よければこれの根拠教えてください
次のhp ではfor reach と大差ないとあるけど、何か他の要因?

外部リンク:qiita.com
964: 名前は開発中のものです。 [sage] 2020/01/10(金) 12:14:16.98 ID:6FaPVqIC(1/3) AAS
>>963
LINQのメソッドに渡すデリゲートは取り扱いを間違えるとGC対象になるし
それに関してググって出てくる記事がほぼ全て検証も解釈も間違ってるから使うなというのは分かる
965: 名前は開発中のものです。 [] 2020/01/10(金) 12:38:04.63 ID:08GLxpkh(2/4) AAS
そう言うことですか
ガベージ関連だと初心者が考えなくても
まぁ、このスレ的には問題なさそうですね
966: 名前は開発中のものです。 [] 2020/01/10(金) 12:42:10.82 ID:08GLxpkh(3/4) AAS
だとすると「RINQ がゲームで悪手」というよりデリケート関連が全てのプログラムで悪手であって、メモリー関連の改善待ちとなるのかな?
c#のバージョンによる改善待ちになるのか
まぁ将来的な課題でしょうかね
967
(1): 名前は開発中のものです。 [sage] 2020/01/10(金) 12:57:56.83 ID:5Sf2RA1L(1/2) AAS
デリゲートがってよりも、Linqで色々繋げると色々コピーがされるしIEnum経由して列挙してくのがアレって話じゃないか?
968
(1): 名前は開発中のものです。 [sage] 2020/01/10(金) 14:23:25.79 ID:6FaPVqIC(2/3) AAS
>>967
IEnumerableは一つずつ取り出して処理する為の機能だから、
複製はされないしチェーンの数だけループ発生したりもしないよ

もちろんToArray()で新規配列は生成されるしOrderBy()でも内部で別のループが生まれてしまうがそれはそういう関数だからな
969
(2): 名前は開発中のものです。 [sage] 2020/01/10(金) 15:40:25.16 ID:5Sf2RA1L(2/2) AAS
>>968
いやもし5段階に組まれてたら下から見るとMoveNext5回呼ばれる事でやっと元のコレクションなりにたどり着くやん
あれインタフェースになってて1番下でのMoveNextでもとのに辿り着くっけ?
970
(1): 名前は開発中のものです。 [sage] 2020/01/10(金) 18:42:11.72 ID:6FaPVqIC(3/3) AAS
>>969
例えばこんなLINQがあるとするだろ
var seq = list.Where(A).Where(B).Where(C);
foreach(var n in seq) Console.WriteLine(n);

内部的にはこの処理と同じ
var tmp = list.GetEnumerator();
while(tmp.MoveNext()){
var n = tmp.Current;
if(!A(n)) continue;
if(!B(n)) continue;
if(!C(n)) continue;
Console.WriteLine(n);
}

取り出した要素をチェーンに繋いである関数に順番に渡してるだけ
要素一つにMoveNextを何回も呼んでるわけじゃない
971: 名前は開発中のものです。 [sage] 2020/01/10(金) 19:15:11.60 ID:7KV1Qvxy(1) AAS
Linqを許可しておくとRDBMSみたいに組むやついるからな
ゲームでそんな使い方されたら激重だから、使わないで統一するのが正解かと
972: 名前は開発中のものです。 [sage] 2020/01/10(金) 19:55:49.34 ID:Pn9TT9VK(1) AAS
linqの冒険…
973: 名前は開発中のものです。 [] 2020/01/10(金) 21:28:36.70 ID:08GLxpkh(4/4) AAS
>>957
これってプログラムするとどんなコードになるのかな?
いまいち浮かばないんだが
974
(1): 名前は開発中のものです。 [] 2020/01/10(金) 22:12:46.10 ID:lJeo0zER(1/2) AAS
3dでPlatform does not support compute shadersこんなエラーが出たんだがよくわかんないんだけどどういうこと?
ユニティちゃんが原因みたいだけどそれ以上はわからなかった
975: 名前は開発中のものです。 [sage] 2020/01/10(金) 22:17:28.65 ID:Fenu7wQ/(1) AAS
そのシェーダーを積んでないから描画できないぞゴルァ、かと。
976
(2): 名前は開発中のものです。 [sage] 2020/01/10(金) 22:52:24.52 ID:L/Emtw4P(1) AAS
>>970
そだっけ?その例だとWhereの第一引数に対してMoveNextすることでさらにその上のWhereが返すIEnumにアクセスってなるんじゃ?
Linqのコンパイラでそんな最適化しないでしょ
977
(2): 名前は開発中のものです。 [sage] 2020/01/10(金) 23:26:02.35 ID:XdY5fR78(1) AAS
>>976
遅延評価というものがあるし、そもそもWhereが返すのはIEnumでなく値そのものだからそこのところを誤解してる
1-
あと 25 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.036s