【ゲームエンジン】Unity初心者質問スレBuild2

レス数が950を超えています。1000を超えると書き込みができなくなります。
1ageteoff
垢版 |
2019/05/08(水) 14:35:37.58ID:VDHuk8YT
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
2020/01/01(水) 13:18:50.68ID:R9RtkJsN
あと百ちよい
完走がんば
2020/01/01(水) 13:28:22.32ID:BX/jaV5P
>>864
アセットを買いましょう
時間の無駄です
2020/01/01(水) 15:36:56.99ID:7Vde49Ia
アセットおじさんをこのスレからDestroyするアセットが欲しい
2020/01/01(水) 16:08:02.37ID:Ntemfi/A
DestroyImmediate(キチガイ.アセットおじさん);
2020/01/01(水) 22:15:05.52ID:e+07kdzD
>>864
たったあれだけの俺のレスでそこまで気づけたのはすごいね
物理挙動がシビアなものを扱うときはfixed updateで、そうじゃなければupdateでいいよ
2020/01/02(木) 18:59:32.06ID:x3JqZiKy
明けましておめでとうございます!
今年も頑張ってアセット購入しましょう!
2020/01/03(金) 02:22:15.17ID:uin/GZHr
Invokeで遅延かけてAudioSourse.PlayOnShot呼びたくて色々調べてたんだけどやっぱりどうしようもない?
コルーチン定義すると散らかって悔しいというだけの理由ではあるんだけど
2020/01/03(金) 02:56:56.21ID:no3xsoMJ
>>871
汎用コルーチン作ってAction使って呼び出せば散らからない
2020/01/03(金) 09:11:45.49ID:+tiiP7aR
>>871
アセットを購入してみては?
2020/01/03(金) 12:26:28.20ID:MQKQya2C
>>869
アドバイスありがとう。
おかげでスクリプト改善して、致命的な個所は大体追い込めた。

今、3Dアクションゲームの水の面を作ってるんだけど、水中を判定する上手い方法はないかな?
複雑にしたくないので、水面オブジェクトはスタンダードアセットの "Water" で進めてる。

水面の判定はコライダーで出来たけど、水中の判定で良い方法はないかと悩んでた。
ざっくり思いついたのは、プレイヤーが上に Ray を投げて水面があり、かつ水面より自分が低ければ水中みたいな。
2020/01/03(金) 12:33:18.47ID:uin/GZHr
>>872
一応それがあるのかありがとう
結局コルーチンになりました
2020/01/03(金) 13:27:05.58ID:SKNp78X0
>>874
水面って水平じゃないの?
水平なら単純にtransform.position.yでやる
2020/01/03(金) 13:32:48.28ID:MQKQya2C
>>876
なるほど、とてもシンプルな解決策だと思う。
ありがとう自分では思いつかなかった。
Raycast で想定通り出来なくて困ってたとこだった。
本当にサンキュー
2020/01/03(金) 21:49:56.16ID:MQKQya2C
おかげで良い感じに水中の挙動実装中だけど、
泳ぐアニメーションを適用したら、泳いでる時、プレイヤーがブロックや壁にめり込むようになった。
確認すると、アニメで3Dモデルは前傾してるのに、カプセルコライダーは立ってる時のままの位置だった。

これは、アニメで3Dモデルが傾いたら、カプセルコライダーも自前で傾ける感じ?
そもそもカプセルコライダーで衝突判定してるのが間違い?
でも、もういろいろ調整して面倒くさいので出来れば、プレイヤーモデルのコライダーの種類は変えたくないなあ。
2020/01/03(金) 21:53:27.57ID:4PHsCaGr
>>878
腰ノードにカプセルコライダー付ければいいんでない?
2020/01/03(金) 22:34:44.77ID:MQKQya2C
>>879
なるほど、3Dモデルは腰では分けてなかったので、体ノードにカプセルコライダーつけたら、水中の前傾でのめり込みが解消した。
でも、もともとの歩く時も傾斜しないカプセルコライダー基準で、オブジェクトを掴む判定や、上る・下りる判定をしてたので、
地上と水中でカプセルコライダーを切り替えることが必要かな。

ありがとう。自分では気づけない発想で本当に勉強になって助かる。
2020/01/04(土) 03:22:30.69ID:kwztwMX9
前々からちょっと気になってたので質問させてください。
オブジェクトAのクラスAにpublic GameObject objB
としてオブジェクトBをインスペクタ上からクラスAにアタッチした場合って
メモリの使用はBは参照してるって認識でいいんでしょうか?

例えばオブジェクトBのデータ量が100MBあったとして、
Aにアタッチしたらゲーム内で200MB使用してることにならないのかって意味です。
882名前は開発中のものです。
垢版 |
2020/01/04(土) 06:09:49.67ID:6CzwS6io
それアタッチじゃなくて参照じゃね?
ゲーム立ち上げてメモリーマネージャーとかで見ればよくね?
2020/01/04(土) 17:59:07.23ID:XO34IPeI
質問させて下さい。

update内で
if(enemy.hp == 0)
を条件にエネミーオブジェクトをデストロイして新しいエネミープレファブを生成する処理を書いたとすると、新しいエネミーが出現するまでの間コンソールにenemyがありません的な警告が出続けてしまいます。

この警告は無視しても良いのでしょうか?
それともhp == 0という条件を辞めて他の関数でhpが0になったらenemyAlive = falseなどのフラグをたてて管理すれば良いのでしょうか?

もっと良い方法もあるのでしょうか?
初歩的すぎる質問だと思いますが先輩方の知恵をお貸し頂きたいです。
よろしくお願いいたします。
2020/01/04(土) 17:59:19.32ID:kov3mgdb
珍しくまともに質問スレしてるな
3年ぶりくらいか?
885883
垢版 |
2020/01/04(土) 18:02:59.33ID:XO34IPeI
書き忘れてしまいました。
作っているのはRPGの様なバトル画面でプレイヤーとエネミーの攻撃力を交互にHPから引くという動作をさせている物です。
今は1vs1で雛形作っていますが、完成後には敵を複数出現させたいと思っています。
2020/01/04(土) 18:59:09.06ID:kNbEhA8/
>>883
無視しても影響は無いと思うけど、警告は意図しない使われ方だから出てるわけで、出来ればステータス管理用のクラスを別で作ってそれを持たせておいた方がいいね
2020/01/04(土) 19:30:16.09ID:yESk8dXK
>>883
ありません的なじゃなくて正確な警告文書こうや
2020/01/04(土) 19:39:48.33ID:XO34IPeI
>>886
回答ありがとうございます!
同じスクリプト内でいろいろ処理してしまってるので管理クラスを別にする方法もためしてみます!

>>887
本当にその通りだと思います、申し訳ありません、、
色々試行錯誤して警告が出なくなってから、もっと良い方法があったのかな?と書き込みしてしまったので警告内容がわかりませんでした。
(nullの文字があった事だけ覚えていたので曖昧な表現になってしまいました)
今後は気をつけます!
ありがとうございました!
2020/01/04(土) 21:24:53.94ID:2v8PE2Fo
>>883
if(enemy != null)
とかで、エネミーが存在するときだけ処理すればいい
2020/01/04(土) 21:33:48.90ID:hGDO8YfT
if文は重いので可能な限り減らしましょう
最初のenemyが出てから呼ぶようにしましょう
891名前は開発中のものです。
垢版 |
2020/01/04(土) 21:55:45.93ID:6CzwS6io
まぁぃまのパソコンやスマホでifの分岐なんかどうでもいい処理
gameobject.find ですら問題ない
結論、気にするな
2020/01/04(土) 22:00:43.39ID:hGDO8YfT
updateで毎フレーム呼ぶなんて論外ですよ
2020/01/04(土) 22:51:48.38ID:yESk8dXK
>>890
それ最初のが出てから、をどうやるの
894弟子
垢版 |
2020/01/04(土) 23:26:41.70ID:6CzwS6io
もっと良い処理は所謂オブジェクト思考
enemyさんのhpを減らしてる処理がどこかに在るわけさ、それはenemyさん自信が持ってる可能性あるので、そこで0になったら次のenemyさんを生成してあげるように管理者へ働きかければいいのさ

攻撃あたる→ダメージ分だけhp減らす
ってやってるはずだお
895弟子
垢版 |
2020/01/04(土) 23:30:14.89ID:6CzwS6io
一応公式のupdate のサンプル貼っとくよ
https://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.Update.html

あれif 分使ってるわ
2020/01/05(日) 01:34:50.36ID:arSAPuKi
質問チンコ(^^
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
と言われるのでふが(^^
御覧の通り特にマイナスは使ってないんでふよ(^^
Debug.Log("1枚目のシートの1番目 name=" + mobList.sheets[1].list[10].威力);
原因分かりまんこ?(^^
ちなみにテラシュールさんのスクリプト使ってまふ(^^
2020/01/05(日) 08:53:30.62ID:ks/IWdWO
>>896
単純に配列のサイズより添字の方が大きいだけ
2020/01/05(日) 09:44:12.13ID:bo4vBboO
3Dアクションゲームの水の面を実装中。
開発機 Windows 10 にてPostProcessで水中のブラー表現とかして、良い感じと思ってたが、
デプロイ先 Android 10 でFPSが激落ち。水中で0.7fpsっておい。
また、水面を実装したとたんに、処理落ちで平均20fpsとかになってしまった。

水面はスタンダードアセットの "Water" だけど、そんなに処理食うものなの?

あと、モバイルではPostProcessは無理っぽい感じかな?
なんか昔の記事ではImageEffectとかあったらしいけど今のUnityにはない?

水面・水中実装は必須なので、なんとか処理負荷軽減しなくては。
2020/01/05(日) 12:25:38.99ID:TFbbbwof
>>898
いいアセットがありますから、ぜひ買ってください
2020/01/05(日) 12:45:02.02ID:bo4vBboO
"Water" は設定を見直したら処理負荷が少なくなったので、おそらく問題ない。
問題は、PostProcess で、コレを切ったら、モバイルでFPSが激上がる。

動作リファレンスは Android 9 (Android One S3) ※上では書き間違えた
この機種は、ゲームするには低スペックなので、コレでサクサク動けば問題ないかなと。
もっと言えば、最近の RAM 3GB 程度の Android TV で30fpsで動くことが目標。

PostProcess モバイルでは全然使えんね。ただ画面に水中にいるように、
青緑のフィルターかけたいだけなのに…
901名前は開発中のものです。
垢版 |
2020/01/05(日) 12:46:50.05ID:8EV9fu0v
なら画面全面にimage を半透明で覆えばよくね?
2020/01/05(日) 12:50:15.96ID:ZhgV+v79
んだんだ。
または光源、環境光の値を変えるべ。
2020/01/05(日) 14:39:39.76ID:bo4vBboO
>>901, 902
アドバイスありがとう。
今回はひとまず Canvas に "画像" を追加して、青緑の半透明に設定し、
水中判定の時にON, OFFすることによって目的の機能が実装出来た。

が、FPSは、水中で27fpsとか微妙な数値になってしまうので、
もう少し水中動作時の処理負荷の原因を追う必要があるみたい。
でもサンキュー。
2020/01/05(日) 15:30:32.39ID:ZhgV+v79
>>903
リアルタイムならon offで重さが変わるから、色味に影響のない透明度0.01ぐらいで置いて、処理時間をなるべく変化させないということもあるぎゃ。
2020/01/05(日) 16:52:03.66ID:UKiA3e/s
RAM3GBとかどんなハイスペスマホだよww
そんなの持ってるやつ数パーセントもいないぞ
2020/01/05(日) 17:06:52.35ID:oPeOUZBr
Unityとは関係ないけどバトルゲームでのアニメーションの時間感覚がわからん

ボタン押す→予備動作→アクション→ヒット→戻るって遷移で
ボタン押してヒットまでの時間を0.33秒にしたら
見せた友人に早すぎてわからんと言われたし…

棒切れで人をポカリと殴るモーションなんだが
2020/01/05(日) 18:05:12.83ID:bo4vBboO
>>904
ありがとう。今、Canvas に ”画像” 貼る解決法は保留にして、カメラに自作スクリプト付けようと試してた。

void OnRenderImage(RenderTexture src, RenderTexture dest) {
 Graphics.Blit(src, dest, material);
}
とかで、試しにマテリアルに "water" のマテリアル渡したら効果が付いた。
よし、初めてシェーダー書くか! と思ったら記述言語 C# じゃない…
青緑半透明をオーバーレイするだけのシェーダーなんだけどね。調べるか。
908名前は開発中のものです。
垢版 |
2020/01/05(日) 18:12:05.93ID:8EV9fu0v
>>906
愚痴なら次のスレに
【質問以外なんでもOK】Unity雑談スレッドその3
http://mevius.5ch.net/test/read.cgi/gamedev/1568370425/
2020/01/05(日) 18:14:39.35ID:bo4vBboO
>>905
RAM 3GBは個人的なアプリ動作の想定値だったけどこれから増えてくると思う。
数年前の RAM 1GB〜2GB時代には、モバイルでUnity制作の3Dゲームは厳しいだろうなと思ってたけど、
RAM 3GB〜4GBの時代になりつつある今、Unityで3Dゲーム開発だ!と思ってここに来たとこ。
2020/01/05(日) 18:55:55.72ID:UKiA3e/s
>>909
日本人の後進性を舐めすぎ
3GBスマホなんか絶対普及しないから諦めろww
2020/01/05(日) 19:03:19.71ID:Vyi2hsuy
浦島太郎かよ
いまどきキャリアもMVNOも3GB以上しか売ってねーよ
2020/01/05(日) 19:08:43.34ID:oPeOUZBr
ID:UKiA3e/sのビルドターゲットってバージョン何?
2020/01/05(日) 19:13:04.30ID:UK9nGc23
荒野行動がさらに快適に遊べるようになるんやなあ
2020/01/05(日) 19:15:37.63ID:Vyi2hsuy
SIMフリーの低スペ機種とか年寄り専用スマホが3GB
3大キャリアが主力で売ってるのは4GBと6GBだからな
2020/01/05(日) 19:20:54.14ID:N5s8+lOM
>>905 >>910
これってなんかのネタ?
2020/01/05(日) 19:50:14.20ID:IxHDmQr7
書込みがガラプーおじさんだったら笑う
2020/01/05(日) 20:47:45.09ID:bo4vBboO
自己レスだけど、青緑透明シェーダー作ったが、普通のサーフェイスシェーダーだと
カメラに付けても半透明の視界が得られず、フラグメントシェーダで青緑透明シェーダーを作成した。

Windows 10 開発機でそこそこ動いて、Android 9 にビルド実行したら、激遅というかまともに動かなかった…
まあ、シェーダーの基本の "き" くらいは体験できたので面白かったけど。

自作シェーダーでも無理となるとキャンバス前面に "画像" 貼り付け? 明らかに処理遅くなるんだよな。
918弟子
垢版 |
2020/01/05(日) 21:30:29.38ID:8EV9fu0v
さぁ900越えて加速したね
完走まであと少し愚痴も雑談も歓迎!
頑張っていきましょう!
2020/01/06(月) 00:01:07.52ID:dCLcpxvc
>>917
ぽストプロセスでやるべき?詳しく知らんけど
920名前は開発中のものです。
垢版 |
2020/01/06(月) 09:42:41.75ID:gkYFwUQg
水の中だし動きも遅くなっていいんじゃね
2020/01/06(月) 12:00:11.26ID:LKBBcVzd
Unity関連で初笑い
2020/01/06(月) 12:26:51.42ID:MVMM0EnC
課金ボタンだけ反応しねえ!
2020/01/07(火) 16:39:17.47ID:N6ynwaTL
反応したと思ったら失敗表示しか出ねえ!
2020/01/07(火) 18:44:04.37ID:oElcyruO
>>919
ありがとう。PostProcess は試したんだけど、モバイルでは激重で使えなかったんだ。
>>920
クライアントに30fpsは死守せよと命じられたからね。まあクライアントも開発者も自分だけど…

プロファイラみたら、結構スクリプトで処理食ってるんで UniRX で Update() と FixedUpdate() を
置き換えた。Start() に UpdateAsObservable とかで全部書くやつ。

結果、あんまり変わんない、自分の使い方が悪いのか…
2020/01/07(火) 18:46:42.17ID:zmI8ipko
インスペクターにセットしないで他のクラスを使うスクリプトの記述方法ってあるのでしょうか?
2020/01/07(火) 18:53:21.15ID:N6ynwaTL
クラス継承じゃなくて?
2020/01/07(火) 19:11:47.36ID:zmI8ipko
>>926
なるほど!早速試してみます!
継承というのは: MonoBehaviorの部分を好きなクラス名に変えれば良いんですよね?
継承するクラスは一つしか選べないのでしょうか?
2020/01/07(火) 19:15:14.41ID:zmI8ipko
C# 継承 複数で検索したら一応解決しました!
調べればすぐ分かることを聞いてしまってごめんなさい。
ありがとうございました!
929名前は開発中のものです。
垢版 |
2020/01/07(火) 19:34:51.14ID:mTxkaJC9
聞く方もわかっていなければ、答える方も分かっていない典型だな
2020/01/07(火) 20:11:34.92ID:uM5ClZyr
質問失礼します
3人などの複数人で開発する場合に自分のみが有料アセットを所有しておりそれを使いたい場合のプロジェクトの管理方法はどうするのが一般的ですか?
2020/01/07(火) 20:25:27.78ID:d7S3IRng
>>924
Updateの呼び出しじゃなくて中身が重たいんだと思われ
deep profile すれば具体的なメソッド名まで追えるから、まずはそれで負荷の高い処理を特定しましょう
2020/01/07(火) 21:31:22.74ID:oElcyruO
>>931
アドバイスありがとう。
詳細プロファイルみたら、どうやら処理の中身で gameObject.name.Contains("Hoge") とか
多用してるとこが処理コストが高いっぽい。
地道にプロファイラ見て、重そうな箇所をつぶしていくしかなさそうだね。

自分の使い方がこなれてないので、UniRX 自体は良さそうだと思った。
2020/01/07(火) 22:21:07.64ID:zmI8ipko
>>929
確かにわかっていないので今まで通りpublicかシリアライズでインスペクターに表示して他のクラスを貼り付けたオブジェクトを入れています。

なにかこの作業を省略出来る方法はあるのでしょうか?

継承について聞けて調べた事は今後活かせる事もありそうなので感謝しています!
2020/01/08(水) 00:37:03.99ID:Hvk3XDsR
Updateの中でFindはさすがにStartでやってキャッシュしないとそりゃそうなるな……
935名前は開発中のものです。
垢版 |
2020/01/08(水) 04:02:14.62ID:yDUxVkXo
Unityを触り始めた時、プレイヤーやエネミーなど、画面に表示するキャラクターは、GameObjectを継承した子クラスとして作るのかと思っていたのですが、そうではないですよね。

この様なプログラムに初めて触れるので今でも違和感があるのですが、何故この様な仕様になっているのでしょうか?

また、この様な実装方法は、デザインパターンで言うと、何パターンになるのでしょうか?

ご存知の方、いらっしゃいましたら、教えて頂けると嬉しいです。
お願い致します。
936名前は開発中のものです。
垢版 |
2020/01/08(水) 04:34:56.94ID:7cplqCOI
>>933
ゲットコンポーネントすればわざわざインスペクタで指定しなくていい
基本他のクラスファイルはそのまま使える
またネームスペース指定してるならusingで指定すれば使えるよ


>>935
ユニティはすべてコンポーネントからの継承
強いて言うならコンポーネントデザインだよ
それが分かった所でプログラム出来るようにはならないから無駄な質問はやめようね
2020/01/08(水) 07:12:01.63ID:STEsEzVT
継承が嫌ならインターフェース定義すればいいじゃない
2020/01/08(水) 21:12:40.84ID:c/TDM3Pm
>>935
MonoBehaviour を継承して、Update() とか FixedUpdate() とか様々なフックハンドラを実装してく作法だよ。
しいて言えば、GoFのObserver パターンに近いんじゃない。Unity 内部の実装は違うらしけど。

GameObject を継承するんじゃなくて、GameObject に上記の MonoBehaviour 継承クラスを紐づけて動作をさせる。
この仕様だと、GameObject が "複数"の MonoBehaviour 継承クラスの動作を行うことが出来る。

C# は多重継承出来ないでしょ、Unity よく考えられてるシステムだよね。
2020/01/08(水) 21:25:51.83ID:c/TDM3Pm
自分も最初 Unity のスクリプトに違和感というか、なんだろうこれは? と思った。
Unity 以外の他言語経験者というか、自分も職業プログラマの端くれなんで、
Player クラスとか、Enemy クラスを定義するんだよな。とか勝手に思って最初そのように書こうとしてた。

でも、Unity には GameObject という規定クラスがあり、それらに対する作用を MonoBehaviour 継承クラスに
記述して GameObject にアタッチ(紐づけ)するという仕組みを理解してからは、腑に落ちたというか納得出来た。
2020/01/08(水) 21:42:58.57ID:c/TDM3Pm
書いてて思ったけど、GameObject に拡張メソッド書けば良くね? と思って調べたら、やっぱりそうしてる人いた。
処理コストとか気になるけど、静的 Utuil クラスとか書くより、 拡張メソッド書いたらスマートに記述出来る箇所が山ほどある。

>>935 サンキュー めちゃめちゃ良い気づきを頂いたわ。
2020/01/08(水) 22:04:58.83ID:c/TDM3Pm
なるほど。GameObject に MonoBehaviour 継承クラス"型" の変数を自由に設定出来ると。
その "型" を "Component" と言いますと。そして、GameObject.GetComponent<型> で自由に変数を取得出来ますと。

最初からそう教えてくれればいいのに。
2020/01/08(水) 22:07:01.56ID:c/TDM3Pm
Unity 良いね。ほんと好きになったわ。
元々 C# が超強力な言語なんで、とにかくプログラミングが楽しい。
2020/01/08(水) 22:18:19.80ID:HHbGzUHS
ここはお前の日記帳ちゃうで
2020/01/08(水) 23:36:42.85ID:Le5pG30A
>>942
まあ、みんな一度はそう思うんだけど、ゲームを作ってる以上、次はC#はもちろんUnityならではボトルネックの最適化でつまずくんだよなー
2020/01/09(木) 01:04:08.75ID:9Vcb+knu
そこでJobSystem,Burst,ECSですよ
2020/01/09(木) 02:30:18.61ID:mwK+f391
DOTSはまだ早い
2020/01/09(木) 10:09:19.78ID:kIaaP1cE
JOBSYSREMとかビジネス啓蒙系のサイトっぽい名前
2020/01/09(木) 10:23:49.72ID:65C13n6s
boolの配列で中身の全てがtrueなら○○するという処理はどうやって書けばスマートですか?

今は配列の要素数が3しかないのでifを使った分岐で力技で動かせて居ますが数が増えたときの事を想像すると頭が痛いです。
2020/01/09(木) 10:47:15.13ID:9CjsCJlx
if文を3つ書いてるということならforeach使おう
2020/01/09(木) 11:16:55.09ID:bvBlalIf
配列数が固定ならFlags付けたenumでビットフラグ使う

動的に増減するなら設計がおかしいんだがLINQのAllを使えば簡単に書ける
2020/01/09(木) 11:32:20.48ID:65C13n6s
for(int count = 0; count <= 2; count++)
{
if(配列[count]== true)
{
変数++;
}
}

if(変数 == 3)
{
処理
}

にしてみたのですが微妙ですか?
foreachとlinqはまだ使い方がわからないのですが調べてみます。
952名前は開発中のものです。
垢版 |
2020/01/09(木) 12:00:30.94ID:AbIkBBD9
1つでもfalseならリターンすればいい
そうすりゃ無駄な変数いらんよ
あとfor で回す場合、<変数.lengthが使えるから増えても問題なし
2020/01/09(木) 12:12:40.81ID:65C13n6s
>>952
count <= 2 の 2の部分を変数.lengthにするという事でしょうか?思いつきませんでした!

もし宜しければ
一つでもfalseなら〜の書き方を教えて頂けませんか?
2020/01/09(木) 12:23:32.35ID:sMXCo4Ih
とりあえず動けばいいって感じ?
2020/01/09(木) 12:47:54.85ID:8Z9bXpy1
>>953
https://i.gyazo.com/6f42dd3fc1e186cf49a71820a2aea731.png
2020/01/09(木) 13:17:02.96ID:AbIkBBD9
あとList型に入れると簡単にあるかないか取れるけど、どうなんだろね
https://i.gyazo.com/b64c1ec457ab732b3122b3b40da4ccd2.png
2020/01/09(木) 13:17:06.70ID:h4Av5g/u
false、trueを入れるときに、変数にして+1、-1しとけばいいやん。0以下なら全部true。
不安なら、たまに時間の許す処理の時にチェックサム。
2020/01/09(木) 13:17:26.76ID:65C13n6s
>>955
ありがとうございます!
この短いコードの中に何故forとifの間に{が必要ないのか、(!b[i])が既にboolを表している等、普通に勉強してたら気付かない事ばかりで尊敬します。。
いつかこういうスマートで格好いいコードが書ける様に頑張ります!
2020/01/09(木) 15:42:48.73ID:ZRX+0Tcv
そこ省略すれば偉いってもんでもないから気をつけてな
コード長くなってくるとこういうとこはすっきり書いたほうが読みやすくはなるけど
2020/01/09(木) 18:15:25.24ID:IB4d3PvK
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);
}
2020/01/09(木) 21:40:32.44ID:L8tG5HPm
>>950
ゲームでLinqは悪手
2020/01/09(木) 23:26:31.33ID:2OZqFXaj
>>945, 946
サンキュー、そういうの教えてもらえるのは、本当に有意義だわ。
自分にはまだ早いので、しばらくベタで悪戦苦闘して経験値つんでからトライするわ。

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

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

https://qiita.com/nskydiving/items/c9c47c1e48ea365f8995
2020/01/10(金) 12:14:16.98ID:6FaPVqIC
>>963
LINQのメソッドに渡すデリゲートは取り扱いを間違えるとGC対象になるし
それに関してググって出てくる記事がほぼ全て検証も解釈も間違ってるから使うなというのは分かる
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況