[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild2 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
883(4): 名前は開発中のものです。 [sage] 2020/01/04(土) 17:59:07.23 ID:XO34IPeI(1/3) AAS
質問させて下さい。
update内で
if(enemy.hp == 0)
を条件にエネミーオブジェクトをデストロイして新しいエネミープレファブを生成する処理を書いたとすると、新しいエネミーが出現するまでの間コンソールにenemyがありません的な警告が出続けてしまいます。
この警告は無視しても良いのでしょうか?
それともhp == 0という条件を辞めて他の関数でhpが0になったらenemyAlive = falseなどのフラグをたてて管理すれば良いのでしょうか?
もっと良い方法もあるのでしょうか?
初歩的すぎる質問だと思いますが先輩方の知恵をお貸し頂きたいです。
よろしくお願いいたします。
884: 名前は開発中のものです。 [sage] 2020/01/04(土) 17:59:19.32 ID:kov3mgdb(1) AAS
珍しくまともに質問スレしてるな
3年ぶりくらいか?
885: 883 [sage] 2020/01/04(土) 18:02:59.33 ID:XO34IPeI(2/3) AAS
書き忘れてしまいました。
作っているのはRPGの様なバトル画面でプレイヤーとエネミーの攻撃力を交互にHPから引くという動作をさせている物です。
今は1vs1で雛形作っていますが、完成後には敵を複数出現させたいと思っています。
886(1): 名前は開発中のものです。 [sage] 2020/01/04(土) 18:59:09.06 ID:kNbEhA8/(1) AAS
>>883
無視しても影響は無いと思うけど、警告は意図しない使われ方だから出てるわけで、出来ればステータス管理用のクラスを別で作ってそれを持たせておいた方がいいね
887(1): 名前は開発中のものです。 [sage] 2020/01/04(土) 19:30:16.09 ID:yESk8dXK(1/2) AAS
>>883
ありません的なじゃなくて正確な警告文書こうや
888: 名前は開発中のものです。 [sage] 2020/01/04(土) 19:39:48.33 ID:XO34IPeI(3/3) AAS
>>886
回答ありがとうございます!
同じスクリプト内でいろいろ処理してしまってるので管理クラスを別にする方法もためしてみます!
>>887
本当にその通りだと思います、申し訳ありません、、
色々試行錯誤して警告が出なくなってから、もっと良い方法があったのかな?と書き込みしてしまったので警告内容がわかりませんでした。
(nullの文字があった事だけ覚えていたので曖昧な表現になってしまいました)
今後は気をつけます!
ありがとうございました!
889: 名前は開発中のものです。 [sage] 2020/01/04(土) 21:24:53.94 ID:2v8PE2Fo(1) AAS
>>883
if(enemy != null)
とかで、エネミーが存在するときだけ処理すればいい
890(1): 名前は開発中のものです。 [sage] 2020/01/04(土) 21:33:48.90 ID:hGDO8YfT(1/2) AAS
if文は重いので可能な限り減らしましょう
最初のenemyが出てから呼ぶようにしましょう
891: 名前は開発中のものです。 [] 2020/01/04(土) 21:55:45.93 ID:6CzwS6io(2/4) AAS
まぁぃまのパソコンやスマホでifの分岐なんかどうでもいい処理
gameobject.find ですら問題ない
結論、気にするな
892: 名前は開発中のものです。 [sage] 2020/01/04(土) 22:00:43.39 ID:hGDO8YfT(2/2) AAS
updateで毎フレーム呼ぶなんて論外ですよ
893: 名前は開発中のものです。 [sage] 2020/01/04(土) 22:51:48.38 ID:yESk8dXK(2/2) AAS
>>890
それ最初のが出てから、をどうやるの
894: 弟子 [] 2020/01/04(土) 23:26:41.70 ID:6CzwS6io(3/4) AAS
もっと良い処理は所謂オブジェクト思考
enemyさんのhpを減らしてる処理がどこかに在るわけさ、それはenemyさん自信が持ってる可能性あるので、そこで0になったら次のenemyさんを生成してあげるように管理者へ働きかければいいのさ
攻撃あたる→ダメージ分だけhp減らす
ってやってるはずだお
895: 弟子 [] 2020/01/04(土) 23:30:14.89 ID:6CzwS6io(4/4) AAS
一応公式のupdate のサンプル貼っとくよ
外部リンク[html]:docs.unity3d.com
あれif 分使ってるわ
896(1): ダーク王鍬大使 ◆SoVpkB15jY [sage] 2020/01/05(日) 01:34:50.36 ID:arSAPuKi(1) AAS
質問チンコ(^^
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].威力);
原因分かりまんこ?(^^
ちなみにテラシュールさんのスクリプト使ってまふ(^^
897: 名前は開発中のものです。 [sage] 2020/01/05(日) 08:53:30.62 ID:ks/IWdWO(1) AAS
>>896
単純に配列のサイズより添字の方が大きいだけ
898(1): 名前は開発中のものです。 [sage] 2020/01/05(日) 09:44:12.13 ID:bo4vBboO(1/6) AAS
3Dアクションゲームの水の面を実装中。
開発機 Windows 10 にてPostProcessで水中のブラー表現とかして、良い感じと思ってたが、
デプロイ先 Android 10 でFPSが激落ち。水中で0.7fpsっておい。
また、水面を実装したとたんに、処理落ちで平均20fpsとかになってしまった。
水面はスタンダードアセットの "Water" だけど、そんなに処理食うものなの?
あと、モバイルではPostProcessは無理っぽい感じかな?
なんか昔の記事ではImageEffectとかあったらしいけど今のUnityにはない?
水面・水中実装は必須なので、なんとか処理負荷軽減しなくては。
899: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:25:38.99 ID:TFbbbwof(1) AAS
>>898
いいアセットがありますから、ぜひ買ってください
900: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:45:02.02 ID:bo4vBboO(2/6) AAS
"Water" は設定を見直したら処理負荷が少なくなったので、おそらく問題ない。
問題は、PostProcess で、コレを切ったら、モバイルでFPSが激上がる。
動作リファレンスは Android 9 (Android One S3) ※上では書き間違えた
この機種は、ゲームするには低スペックなので、コレでサクサク動けば問題ないかなと。
もっと言えば、最近の RAM 3GB 程度の Android TV で30fpsで動くことが目標。
PostProcess モバイルでは全然使えんね。ただ画面に水中にいるように、
青緑のフィルターかけたいだけなのに…
901(1): 名前は開発中のものです。 [] 2020/01/05(日) 12:46:50.05 ID:8EV9fu0v(1/3) AAS
なら画面全面にimage を半透明で覆えばよくね?
902: 名前は開発中のものです。 [sage] 2020/01/05(日) 12:50:15.96 ID:ZhgV+v79(1/2) AAS
んだんだ。
または光源、環境光の値を変えるべ。
903(1): 名前は開発中のものです。 [sage] 2020/01/05(日) 14:39:39.76 ID:bo4vBboO(3/6) AAS
>>901 902
アドバイスありがとう。
今回はひとまず Canvas に "画像" を追加して、青緑の半透明に設定し、
水中判定の時にON, OFFすることによって目的の機能が実装出来た。
が、FPSは、水中で27fpsとか微妙な数値になってしまうので、
もう少し水中動作時の処理負荷の原因を追う必要があるみたい。
でもサンキュー。
904(1): 名前は開発中のものです。 [sage] 2020/01/05(日) 15:30:32.39 ID:ZhgV+v79(2/2) AAS
>>903
リアルタイムならon offで重さが変わるから、色味に影響のない透明度0.01ぐらいで置いて、処理時間をなるべく変化させないということもあるぎゃ。
905(2): 名前は開発中のものです。 [sage] 2020/01/05(日) 16:52:03.66 ID:UKiA3e/s(1/2) AAS
RAM3GBとかどんなハイスペスマホだよww
そんなの持ってるやつ数パーセントもいないぞ
906(1): 名前は開発中のものです。 [sage] 2020/01/05(日) 17:06:52.35 ID:oPeOUZBr(1/2) AAS
Unityとは関係ないけどバトルゲームでのアニメーションの時間感覚がわからん
ボタン押す→予備動作→アクション→ヒット→戻るって遷移で
ボタン押してヒットまでの時間を0.33秒にしたら
見せた友人に早すぎてわからんと言われたし…
棒切れで人をポカリと殴るモーションなんだが
907: 名前は開発中のものです。 [sage] 2020/01/05(日) 18:05:12.83 ID:bo4vBboO(4/6) AAS
>>904
ありがとう。今、Canvas に ”画像” 貼る解決法は保留にして、カメラに自作スクリプト付けようと試してた。
void OnRenderImage(RenderTexture src, RenderTexture dest) {
Graphics.Blit(src, dest, material);
}
とかで、試しにマテリアルに "water" のマテリアル渡したら効果が付いた。
よし、初めてシェーダー書くか! と思ったら記述言語 C# じゃない…
青緑半透明をオーバーレイするだけのシェーダーなんだけどね。調べるか。
上下前次1-新書関写板覧索設栞歴
あと 95 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s