[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild2 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
870: 名前は開発中のものです。 [sage] 2020/01/02(木) 18:59:32.06 ID:x3JqZiKy 明けましておめでとうございます! 今年も頑張ってアセット購入しましょう! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/870
871: 名前は開発中のものです。 [sage] 2020/01/03(金) 02:22:15.17 ID:uin/GZHr Invokeで遅延かけてAudioSourse.PlayOnShot呼びたくて色々調べてたんだけどやっぱりどうしようもない? コルーチン定義すると散らかって悔しいというだけの理由ではあるんだけど http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/871
872: 名前は開発中のものです。 [sage] 2020/01/03(金) 02:56:56.21 ID:no3xsoMJ >>871 汎用コルーチン作ってAction使って呼び出せば散らからない http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/872
873: 名前は開発中のものです。 [sage] 2020/01/03(金) 09:11:45.49 ID:+tiiP7aR >>871 アセットを購入してみては? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/873
874: 名前は開発中のものです。 [sage] 2020/01/03(金) 12:26:28.20 ID:MQKQya2C >>869 アドバイスありがとう。 おかげでスクリプト改善して、致命的な個所は大体追い込めた。 今、3Dアクションゲームの水の面を作ってるんだけど、水中を判定する上手い方法はないかな? 複雑にしたくないので、水面オブジェクトはスタンダードアセットの "Water" で進めてる。 水面の判定はコライダーで出来たけど、水中の判定で良い方法はないかと悩んでた。 ざっくり思いついたのは、プレイヤーが上に Ray を投げて水面があり、かつ水面より自分が低ければ水中みたいな。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/874
875: 名前は開発中のものです。 [sage] 2020/01/03(金) 12:33:18.47 ID:uin/GZHr >>872 一応それがあるのかありがとう 結局コルーチンになりました http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/875
876: 名前は開発中のものです。 [sage] 2020/01/03(金) 13:27:05.58 ID:SKNp78X0 >>874 水面って水平じゃないの? 水平なら単純にtransform.position.yでやる http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/876
877: 名前は開発中のものです。 [sage] 2020/01/03(金) 13:32:48.28 ID:MQKQya2C >>876 なるほど、とてもシンプルな解決策だと思う。 ありがとう自分では思いつかなかった。 Raycast で想定通り出来なくて困ってたとこだった。 本当にサンキュー http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/877
878: 名前は開発中のものです。 [sage] 2020/01/03(金) 21:49:56.16 ID:MQKQya2C おかげで良い感じに水中の挙動実装中だけど、 泳ぐアニメーションを適用したら、泳いでる時、プレイヤーがブロックや壁にめり込むようになった。 確認すると、アニメで3Dモデルは前傾してるのに、カプセルコライダーは立ってる時のままの位置だった。 これは、アニメで3Dモデルが傾いたら、カプセルコライダーも自前で傾ける感じ? そもそもカプセルコライダーで衝突判定してるのが間違い? でも、もういろいろ調整して面倒くさいので出来れば、プレイヤーモデルのコライダーの種類は変えたくないなあ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/878
879: 名前は開発中のものです。 [sage] 2020/01/03(金) 21:53:27.57 ID:4PHsCaGr >>878 腰ノードにカプセルコライダー付ければいいんでない? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/879
880: 名前は開発中のものです。 [sage] 2020/01/03(金) 22:34:44.77 ID:MQKQya2C >>879 なるほど、3Dモデルは腰では分けてなかったので、体ノードにカプセルコライダーつけたら、水中の前傾でのめり込みが解消した。 でも、もともとの歩く時も傾斜しないカプセルコライダー基準で、オブジェクトを掴む判定や、上る・下りる判定をしてたので、 地上と水中でカプセルコライダーを切り替えることが必要かな。 ありがとう。自分では気づけない発想で本当に勉強になって助かる。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/880
881: 名前は開発中のものです。 [sage] 2020/01/04(土) 03:22:30.69 ID:kwztwMX9 前々からちょっと気になってたので質問させてください。 オブジェクトAのクラスAにpublic GameObject objB としてオブジェクトBをインスペクタ上からクラスAにアタッチした場合って メモリの使用はBは参照してるって認識でいいんでしょうか? 例えばオブジェクトBのデータ量が100MBあったとして、 Aにアタッチしたらゲーム内で200MB使用してることにならないのかって意味です。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/881
882: 名前は開発中のものです。 [] 2020/01/04(土) 06:09:49.67 ID:6CzwS6io それアタッチじゃなくて参照じゃね? ゲーム立ち上げてメモリーマネージャーとかで見ればよくね? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/882
883: 名前は開発中のものです。 [sage] 2020/01/04(土) 17:59:07.23 ID:XO34IPeI 質問させて下さい。 update内で if(enemy.hp == 0) を条件にエネミーオブジェクトをデストロイして新しいエネミープレファブを生成する処理を書いたとすると、新しいエネミーが出現するまでの間コンソールにenemyがありません的な警告が出続けてしまいます。 この警告は無視しても良いのでしょうか? それともhp == 0という条件を辞めて他の関数でhpが0になったらenemyAlive = falseなどのフラグをたてて管理すれば良いのでしょうか? もっと良い方法もあるのでしょうか? 初歩的すぎる質問だと思いますが先輩方の知恵をお貸し頂きたいです。 よろしくお願いいたします。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/883
884: 名前は開発中のものです。 [sage] 2020/01/04(土) 17:59:19.32 ID:kov3mgdb 珍しくまともに質問スレしてるな 3年ぶりくらいか? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/884
885: 883 [sage] 2020/01/04(土) 18:02:59.33 ID:XO34IPeI 書き忘れてしまいました。 作っているのはRPGの様なバトル画面でプレイヤーとエネミーの攻撃力を交互にHPから引くという動作をさせている物です。 今は1vs1で雛形作っていますが、完成後には敵を複数出現させたいと思っています。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/885
886: 名前は開発中のものです。 [sage] 2020/01/04(土) 18:59:09.06 ID:kNbEhA8/ >>883 無視しても影響は無いと思うけど、警告は意図しない使われ方だから出てるわけで、出来ればステータス管理用のクラスを別で作ってそれを持たせておいた方がいいね http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/886
887: 名前は開発中のものです。 [sage] 2020/01/04(土) 19:30:16.09 ID:yESk8dXK >>883 ありません的なじゃなくて正確な警告文書こうや http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/887
888: 名前は開発中のものです。 [sage] 2020/01/04(土) 19:39:48.33 ID:XO34IPeI >>886 回答ありがとうございます! 同じスクリプト内でいろいろ処理してしまってるので管理クラスを別にする方法もためしてみます! >>887 本当にその通りだと思います、申し訳ありません、、 色々試行錯誤して警告が出なくなってから、もっと良い方法があったのかな?と書き込みしてしまったので警告内容がわかりませんでした。 (nullの文字があった事だけ覚えていたので曖昧な表現になってしまいました) 今後は気をつけます! ありがとうございました! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/888
889: 名前は開発中のものです。 [sage] 2020/01/04(土) 21:24:53.94 ID:2v8PE2Fo >>883 if(enemy != null) とかで、エネミーが存在するときだけ処理すればいい http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/889
890: 名前は開発中のものです。 [sage] 2020/01/04(土) 21:33:48.90 ID:hGDO8YfT if文は重いので可能な限り減らしましょう 最初のenemyが出てから呼ぶようにしましょう http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/890
891: 名前は開発中のものです。 [] 2020/01/04(土) 21:55:45.93 ID:6CzwS6io まぁぃまのパソコンやスマホでifの分岐なんかどうでもいい処理 gameobject.find ですら問題ない 結論、気にするな http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/891
892: 名前は開発中のものです。 [sage] 2020/01/04(土) 22:00:43.39 ID:hGDO8YfT updateで毎フレーム呼ぶなんて論外ですよ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/892
893: 名前は開発中のものです。 [sage] 2020/01/04(土) 22:51:48.38 ID:yESk8dXK >>890 それ最初のが出てから、をどうやるの http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/893
894: 弟子 [] 2020/01/04(土) 23:26:41.70 ID:6CzwS6io もっと良い処理は所謂オブジェクト思考 enemyさんのhpを減らしてる処理がどこかに在るわけさ、それはenemyさん自信が持ってる可能性あるので、そこで0になったら次のenemyさんを生成してあげるように管理者へ働きかければいいのさ 攻撃あたる→ダメージ分だけhp減らす ってやってるはずだお http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/894
895: 弟子 [] 2020/01/04(土) 23:30:14.89 ID:6CzwS6io 一応公式のupdate のサンプル貼っとくよ https://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.Update.html あれif 分使ってるわ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/895
896: ダーク王鍬大使 ◆SoVpkB15jY [sage] 2020/01/05(日) 01:34:50.36 ID: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].威力); 原因分かりまんこ?(^^ ちなみにテラシュールさんのスクリプト使ってまふ(^^ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/896
897: 名前は開発中のものです。 [sage] 2020/01/05(日) 08:53:30.62 ID:ks/IWdWO >>896 単純に配列のサイズより添字の方が大きいだけ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/897
898: 名前は開発中のものです。 [sage] 2020/01/05(日) 09:44:12.13 ID:bo4vBboO 3Dアクションゲームの水の面を実装中。 開発機 Windows 10 にてPostProcessで水中のブラー表現とかして、良い感じと思ってたが、 デプロイ先 Android 10 でFPSが激落ち。水中で0.7fpsっておい。 また、水面を実装したとたんに、処理落ちで平均20fpsとかになってしまった。 水面はスタンダードアセットの "Water" だけど、そんなに処理食うものなの? あと、モバイルではPostProcessは無理っぽい感じかな? なんか昔の記事ではImageEffectとかあったらしいけど今のUnityにはない? 水面・水中実装は必須なので、なんとか処理負荷軽減しなくては。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/898
899: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:25:38.99 ID:TFbbbwof >>898 いいアセットがありますから、ぜひ買ってください http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/899
900: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:45:02.02 ID:bo4vBboO "Water" は設定を見直したら処理負荷が少なくなったので、おそらく問題ない。 問題は、PostProcess で、コレを切ったら、モバイルでFPSが激上がる。 動作リファレンスは Android 9 (Android One S3) ※上では書き間違えた この機種は、ゲームするには低スペックなので、コレでサクサク動けば問題ないかなと。 もっと言えば、最近の RAM 3GB 程度の Android TV で30fpsで動くことが目標。 PostProcess モバイルでは全然使えんね。ただ画面に水中にいるように、 青緑のフィルターかけたいだけなのに… http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/900
901: 名前は開発中のものです。 [] 2020/01/05(日) 12:46:50.05 ID:8EV9fu0v なら画面全面にimage を半透明で覆えばよくね? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/901
902: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:50:15.96 ID:ZhgV+v79 んだんだ。 または光源、環境光の値を変えるべ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/902
903: 名前は開発中のものです。 [sage] 2020/01/05(日) 14:39:39.76 ID:bo4vBboO >>901, 902 アドバイスありがとう。 今回はひとまず Canvas に "画像" を追加して、青緑の半透明に設定し、 水中判定の時にON, OFFすることによって目的の機能が実装出来た。 が、FPSは、水中で27fpsとか微妙な数値になってしまうので、 もう少し水中動作時の処理負荷の原因を追う必要があるみたい。 でもサンキュー。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/903
904: 名前は開発中のものです。 [sage] 2020/01/05(日) 15:30:32.39 ID:ZhgV+v79 >>903 リアルタイムならon offで重さが変わるから、色味に影響のない透明度0.01ぐらいで置いて、処理時間をなるべく変化させないということもあるぎゃ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/904
905: 名前は開発中のものです。 [sage] 2020/01/05(日) 16:52:03.66 ID:UKiA3e/s RAM3GBとかどんなハイスペスマホだよww そんなの持ってるやつ数パーセントもいないぞ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/905
906: 名前は開発中のものです。 [sage] 2020/01/05(日) 17:06:52.35 ID:oPeOUZBr Unityとは関係ないけどバトルゲームでのアニメーションの時間感覚がわからん ボタン押す→予備動作→アクション→ヒット→戻るって遷移で ボタン押してヒットまでの時間を0.33秒にしたら 見せた友人に早すぎてわからんと言われたし… 棒切れで人をポカリと殴るモーションなんだが http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/906
907: 名前は開発中のものです。 [sage] 2020/01/05(日) 18:05:12.83 ID:bo4vBboO >>904 ありがとう。今、Canvas に ”画像” 貼る解決法は保留にして、カメラに自作スクリプト付けようと試してた。 void OnRenderImage(RenderTexture src, RenderTexture dest) { Graphics.Blit(src, dest, material); } とかで、試しにマテリアルに "water" のマテリアル渡したら効果が付いた。 よし、初めてシェーダー書くか! と思ったら記述言語 C# じゃない… 青緑半透明をオーバーレイするだけのシェーダーなんだけどね。調べるか。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/907
908: 名前は開発中のものです。 [] 2020/01/05(日) 18:12:05.93 ID:8EV9fu0v >>906 愚痴なら次のスレに 【質問以外なんでもOK】Unity雑談スレッドその3 http://mevius.5ch.net/test/read.cgi/gamedev/1568370425/ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/908
909: 名前は開発中のものです。 [sage] 2020/01/05(日) 18:14:39.35 ID:bo4vBboO >>905 RAM 3GBは個人的なアプリ動作の想定値だったけどこれから増えてくると思う。 数年前の RAM 1GB〜2GB時代には、モバイルでUnity制作の3Dゲームは厳しいだろうなと思ってたけど、 RAM 3GB〜4GBの時代になりつつある今、Unityで3Dゲーム開発だ!と思ってここに来たとこ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/909
910: 名前は開発中のものです。 [sage] 2020/01/05(日) 18:55:55.72 ID:UKiA3e/s >>909 日本人の後進性を舐めすぎ 3GBスマホなんか絶対普及しないから諦めろww http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/910
911: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:03:19.71 ID:Vyi2hsuy 浦島太郎かよ いまどきキャリアもMVNOも3GB以上しか売ってねーよ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/911
912: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:08:43.34 ID:oPeOUZBr ID:UKiA3e/sのビルドターゲットってバージョン何? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/912
913: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:13:04.30 ID:UK9nGc23 荒野行動がさらに快適に遊べるようになるんやなあ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/913
914: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:15:37.63 ID:Vyi2hsuy SIMフリーの低スペ機種とか年寄り専用スマホが3GB 3大キャリアが主力で売ってるのは4GBと6GBだからな http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/914
915: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:20:54.14 ID:N5s8+lOM >>905 >>910 これってなんかのネタ? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/915
916: 名前は開発中のものです。 [sage] 2020/01/05(日) 19:50:14.20 ID:IxHDmQr7 書込みがガラプーおじさんだったら笑う http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/916
917: 名前は開発中のものです。 [sage] 2020/01/05(日) 20:47:45.09 ID:bo4vBboO 自己レスだけど、青緑透明シェーダー作ったが、普通のサーフェイスシェーダーだと カメラに付けても半透明の視界が得られず、フラグメントシェーダで青緑透明シェーダーを作成した。 Windows 10 開発機でそこそこ動いて、Android 9 にビルド実行したら、激遅というかまともに動かなかった… まあ、シェーダーの基本の "き" くらいは体験できたので面白かったけど。 自作シェーダーでも無理となるとキャンバス前面に "画像" 貼り付け? 明らかに処理遅くなるんだよな。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/917
918: 弟子 [] 2020/01/05(日) 21:30:29.38 ID:8EV9fu0v さぁ900越えて加速したね 完走まであと少し愚痴も雑談も歓迎! 頑張っていきましょう! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/918
919: 名前は開発中のものです。 [sage] 2020/01/06(月) 00:01:07.52 ID:dCLcpxvc >>917 ぽストプロセスでやるべき?詳しく知らんけど http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/919
920: 名前は開発中のものです。 [] 2020/01/06(月) 09:42:41.75 ID:gkYFwUQg 水の中だし動きも遅くなっていいんじゃね http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/920
921: 名前は開発中のものです。 [sage] 2020/01/06(月) 12:00:11.26 ID:LKBBcVzd Unity関連で初笑い http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/921
922: 名前は開発中のものです。 [sage] 2020/01/06(月) 12:26:51.42 ID:MVMM0EnC 課金ボタンだけ反応しねえ! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/922
923: 名前は開発中のものです。 [sage] 2020/01/07(火) 16:39:17.47 ID:N6ynwaTL 反応したと思ったら失敗表示しか出ねえ! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/923
924: 名前は開発中のものです。 [sage] 2020/01/07(火) 18:44:04.37 ID:oElcyruO >>919 ありがとう。PostProcess は試したんだけど、モバイルでは激重で使えなかったんだ。 >>920 クライアントに30fpsは死守せよと命じられたからね。まあクライアントも開発者も自分だけど… プロファイラみたら、結構スクリプトで処理食ってるんで UniRX で Update() と FixedUpdate() を 置き換えた。Start() に UpdateAsObservable とかで全部書くやつ。 結果、あんまり変わんない、自分の使い方が悪いのか… http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/924
925: 名前は開発中のものです。 [sage] 2020/01/07(火) 18:46:42.17 ID:zmI8ipko インスペクターにセットしないで他のクラスを使うスクリプトの記述方法ってあるのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/925
926: 名前は開発中のものです。 [sage] 2020/01/07(火) 18:53:21.15 ID:N6ynwaTL クラス継承じゃなくて? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/926
927: 名前は開発中のものです。 [sage] 2020/01/07(火) 19:11:47.36 ID:zmI8ipko >>926 なるほど!早速試してみます! 継承というのは: MonoBehaviorの部分を好きなクラス名に変えれば良いんですよね? 継承するクラスは一つしか選べないのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/927
928: 名前は開発中のものです。 [sage] 2020/01/07(火) 19:15:14.41 ID:zmI8ipko C# 継承 複数で検索したら一応解決しました! 調べればすぐ分かることを聞いてしまってごめんなさい。 ありがとうございました! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/928
929: 名前は開発中のものです。 [] 2020/01/07(火) 19:34:51.14 ID:mTxkaJC9 聞く方もわかっていなければ、答える方も分かっていない典型だな http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/929
930: 名前は開発中のものです。 [sage] 2020/01/07(火) 20:11:34.92 ID:uM5ClZyr 質問失礼します 3人などの複数人で開発する場合に自分のみが有料アセットを所有しておりそれを使いたい場合のプロジェクトの管理方法はどうするのが一般的ですか? http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/930
931: 名前は開発中のものです。 [sage] 2020/01/07(火) 20:25:27.78 ID:d7S3IRng >>924 Updateの呼び出しじゃなくて中身が重たいんだと思われ deep profile すれば具体的なメソッド名まで追えるから、まずはそれで負荷の高い処理を特定しましょう http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/931
932: 名前は開発中のものです。 [sage] 2020/01/07(火) 21:31:22.74 ID:oElcyruO >>931 アドバイスありがとう。 詳細プロファイルみたら、どうやら処理の中身で gameObject.name.Contains("Hoge") とか 多用してるとこが処理コストが高いっぽい。 地道にプロファイラ見て、重そうな箇所をつぶしていくしかなさそうだね。 自分の使い方がこなれてないので、UniRX 自体は良さそうだと思った。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/932
933: 名前は開発中のものです。 [sage] 2020/01/07(火) 22:21:07.64 ID:zmI8ipko >>929 確かにわかっていないので今まで通りpublicかシリアライズでインスペクターに表示して他のクラスを貼り付けたオブジェクトを入れています。 なにかこの作業を省略出来る方法はあるのでしょうか? 継承について聞けて調べた事は今後活かせる事もありそうなので感謝しています! http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/933
934: 名前は開発中のものです。 [sage] 2020/01/08(水) 00:37:03.99 ID:Hvk3XDsR Updateの中でFindはさすがにStartでやってキャッシュしないとそりゃそうなるな…… http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/934
935: 名前は開発中のものです。 [] 2020/01/08(水) 04:02:14.62 ID:yDUxVkXo Unityを触り始めた時、プレイヤーやエネミーなど、画面に表示するキャラクターは、GameObjectを継承した子クラスとして作るのかと思っていたのですが、そうではないですよね。 この様なプログラムに初めて触れるので今でも違和感があるのですが、何故この様な仕様になっているのでしょうか? また、この様な実装方法は、デザインパターンで言うと、何パターンになるのでしょうか? ご存知の方、いらっしゃいましたら、教えて頂けると嬉しいです。 お願い致します。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/935
936: 名前は開発中のものです。 [] 2020/01/08(水) 04:34:56.94 ID:7cplqCOI >>933 ゲットコンポーネントすればわざわざインスペクタで指定しなくていい 基本他のクラスファイルはそのまま使える またネームスペース指定してるならusingで指定すれば使えるよ >>935 ユニティはすべてコンポーネントからの継承 強いて言うならコンポーネントデザインだよ それが分かった所でプログラム出来るようにはならないから無駄な質問はやめようね http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/936
937: 名前は開発中のものです。 [sage] 2020/01/08(水) 07:12:01.63 ID:STEsEzVT 継承が嫌ならインターフェース定義すればいいじゃない http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/937
938: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:12:40.84 ID:c/TDM3Pm >>935 MonoBehaviour を継承して、Update() とか FixedUpdate() とか様々なフックハンドラを実装してく作法だよ。 しいて言えば、GoFのObserver パターンに近いんじゃない。Unity 内部の実装は違うらしけど。 GameObject を継承するんじゃなくて、GameObject に上記の MonoBehaviour 継承クラスを紐づけて動作をさせる。 この仕様だと、GameObject が "複数"の MonoBehaviour 継承クラスの動作を行うことが出来る。 C# は多重継承出来ないでしょ、Unity よく考えられてるシステムだよね。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/938
939: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:25:51.83 ID:c/TDM3Pm 自分も最初 Unity のスクリプトに違和感というか、なんだろうこれは? と思った。 Unity 以外の他言語経験者というか、自分も職業プログラマの端くれなんで、 Player クラスとか、Enemy クラスを定義するんだよな。とか勝手に思って最初そのように書こうとしてた。 でも、Unity には GameObject という規定クラスがあり、それらに対する作用を MonoBehaviour 継承クラスに 記述して GameObject にアタッチ(紐づけ)するという仕組みを理解してからは、腑に落ちたというか納得出来た。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/939
940: 名前は開発中のものです。 [sage] 2020/01/08(水) 21:42:58.57 ID:c/TDM3Pm 書いてて思ったけど、GameObject に拡張メソッド書けば良くね? と思って調べたら、やっぱりそうしてる人いた。 処理コストとか気になるけど、静的 Utuil クラスとか書くより、 拡張メソッド書いたらスマートに記述出来る箇所が山ほどある。 >>935 サンキュー めちゃめちゃ良い気づきを頂いたわ。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/940
941: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:04:58.83 ID:c/TDM3Pm なるほど。GameObject に MonoBehaviour 継承クラス"型" の変数を自由に設定出来ると。 その "型" を "Component" と言いますと。そして、GameObject.GetComponent<型> で自由に変数を取得出来ますと。 最初からそう教えてくれればいいのに。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/941
942: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:07:01.56 ID:c/TDM3Pm Unity 良いね。ほんと好きになったわ。 元々 C# が超強力な言語なんで、とにかくプログラミングが楽しい。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/942
943: 名前は開発中のものです。 [sage] 2020/01/08(水) 22:18:19.80 ID:HHbGzUHS ここはお前の日記帳ちゃうで http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/943
944: 名前は開発中のものです。 [sage] 2020/01/08(水) 23:36:42.85 ID:Le5pG30A >>942 まあ、みんな一度はそう思うんだけど、ゲームを作ってる以上、次はC#はもちろんUnityならではボトルネックの最適化でつまずくんだよなー http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/944
945: 名前は開発中のものです。 [sage] 2020/01/09(木) 01:04:08.75 ID:9Vcb+knu そこでJobSystem,Burst,ECSですよ http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/945
946: 名前は開発中のものです。 [sage] 2020/01/09(木) 02:30:18.61 ID:mwK+f391 DOTSはまだ早い http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/946
947: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:09:19.78 ID:kIaaP1cE JOBSYSREMとかビジネス啓蒙系のサイトっぽい名前 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/947
948: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:23:49.72 ID:65C13n6s boolの配列で中身の全てがtrueなら○○するという処理はどうやって書けばスマートですか? 今は配列の要素数が3しかないのでifを使った分岐で力技で動かせて居ますが数が増えたときの事を想像すると頭が痛いです。 http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/948
949: 名前は開発中のものです。 [sage] 2020/01/09(木) 10:47:15.13 ID:9CjsCJlx if文を3つ書いてるということならforeach使おう http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/949
950: 名前は開発中のものです。 [sage] 2020/01/09(木) 11:16:55.09 ID:bvBlalIf 配列数が固定ならFlags付けたenumでビットフラグ使う 動的に増減するなら設計がおかしいんだがLINQのAllを使えば簡単に書ける http://mevius.5ch.net/test/read.cgi/gamedev/1557293737/950
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 52 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s