[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild4 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
191: 名前は開発中のものです。 [sage] 2020/04/20(月) 14:46:13.15 ID:7TeDGIGu >>190 角度取得をstartじゃなく、updateにでもいれてるんだろうね。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/191
192: 名前は開発中のものです。 [sage] 2020/04/20(月) 15:01:19.48 ID:Z9e9J0rW ゲームにはよくパワーアップやパワーダウンの効果をもつバフ、デバフがあると思います こういったものというのは、先に計算を行って置き、実数を変更しておくのが一般的なのでしょうか それとも、効果を発揮する状況になったとき(たとえば攻撃時、攻撃力の値が必要になったとき)に毎回算出するのが一般的なのでしょうか 前者の場合だと計算は完了しているため後は値を参照すればパワーアップ状態での行動に反映でき、負荷が軽くなるとは思うのですが、 パブ、デバフの効果切れの際に、特に乗算等で計算していた場合、パワーアップ中にレベルアップや装備変更などで元の値が変化してしまうと 効果切れの処理のときに元の値が狂ってしまうバグが発生してしまいます 後者の場合だと前述のバグは発生しにくいとは思いますが、攻撃のたびにパワーアップ分を計算しなくてはならず、 簡単な計算とはいえ毎回負荷がかかってしまいます 今作っているのは3Dでリアルタイムで動くRPGのようなもので将来オンライン化を目指していますが、 バグの回避と拡張性の問題から後者の手段を取ろうと思っているのですが、処理負荷がどう響くのか分かりません とりあえず一般的な手法ならそれなりに実績もあるだろうということで、どちらが一般的でしょうか http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/192
193: 名前は開発中のものです。 [] 2020/04/20(月) 15:10:33.56 ID:zd2flDEV >>191 Startに入れて実行したら弾が進まなくなりました… なぜなんでしょうか… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/193
194: 名前は開発中のものです。 [sage] 2020/04/20(月) 15:49:24.30 ID:BqIKHtjL >>192 前者でも元の値が変わったときに再計算をはさんでおけばバグは起きないだろうし、攻撃のたびに単純な計算するくらいの負担を気にする必要があるとも思えないです。 攻撃速度が1秒間に100回で複数の敵に多段ヒットしまくる様な特殊なゲームでなければですが。 >>193 方向の決定をStartでして、その方向にupdateで進めればいいんじゃない? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/194
195: 名前は開発中のものです。 [sage] 2020/04/20(月) 16:27:38.06 ID:hAG3HiSQ scriptを用いて指定オブジェクトの色をGetComponent<Image>().material.color で変更しようとしたところ 指定したオブジェクト以外の色も変更されてしまいます。 指定したオブジェクトのみ変更させたい場合どうしたらよいでしょうか Default UI Material というのが指定した色になっていました。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/195
196: 名前は開発中のものです。 [sage] 2020/04/20(月) 16:35:21.10 ID:7TeDGIGu >>193 おい!w 関数理解して組んでるのか? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/196
197: 名前は開発中のものです。 [sage] 2020/04/20(月) 16:36:35.22 ID:7TeDGIGu >>195 確か、マテリアルカラーはパレットだから、ほかのオブジェクトでも使ってたら変わったよ。 それが嫌なら専用のマテリアルを作るのが1番かな。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/197
198: 名前は開発中のものです。 [sage] 2020/04/20(月) 16:46:25.44 ID:hAG3HiSQ 返答ありがとうございます。 指定したImageオブジェクト(ほかのオブジェクトも)のmaterialを設定していませんでした。 指定オブジェクトのmaterialを「Sprites-Default」に設定したところ 指定したオブジェクトのみ色を変えることができました。ありがとうございます。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/198
199: 名前は開発中のものです。 [] 2020/04/20(月) 17:10:09.14 ID:zd2flDEV >>196 GameObject Player; SpriteRenderer Renderer; void Update() { bool left =Renderer.flipX //左向きのときtrue if(left==true) { transform.Translate(-0.5f,0,0); } else { transform.Translate(0.5f,0,0); } } というスクリプトをUpdateに入れています Update関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/199
200: 名前は開発中のものです。 [sage] 2020/04/20(月) 17:33:02.98 ID:QzIkkg0M unity(2D)って、ひょっとしてそれほど画像の大きさは気にしなくていいですか? カメラサイズとかで調整して、カメラで見えたものがそのまま映像として出る感じ? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/200
201: 名前は開発中のものです。 [sage] 2020/04/20(月) 17:40:40.58 ID:5Q+qVe+b >>199 leftをメンバ変数にしてstart()で向きを代入すればいい http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/201
202: 名前は開発中のものです。 [] 2020/04/20(月) 17:55:39.99 ID:zd2flDEV >>201 public bool left を文頭に付け加えればメンバ変数になりますか? それと向きの代入はどのように書けばいいのでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/202
203: 名前は開発中のものです。 [sage] 2020/04/20(月) 19:41:13.85 ID:7TeDGIGu >>202 そんで、left=render…をスタートにね。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/203
204: 名前は開発中のものです。 [sage] 2020/04/20(月) 20:05:15.73 ID:vPtvjXeA インスペクターの変数表示を折りたたみしたくて、 「InspectorFoldoutGroup」というのを見つけたのですが導入方法がわかりません。 やり方教えてほしいです。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/204
205: 名前は開発中のものです。 [sage] 2020/04/20(月) 20:50:29.55 ID:bEPCXYQk >>204 Homebrewフォルダを自分のプロジェクトのAssetsに置く 折りたたみを使いたいスクリプトの一番上の部分に using Pixeye.Unity; を追加 あとは添付されてる README.md 見ればわかるはず。 .mdファイルが開けなかったらブラウザにドラッグ&ドロップすれば見れる http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/205
206: 名前は開発中のものです。 [] 2020/04/20(月) 21:03:41.06 ID:zd2flDEV GameObject Player; SpriteRenderer Renderer; public float x; public bool left; void Start() { left = Renderer.flipX; Player = GameObject.Find("Player"); Renderer = Player.GetComponent<SpriteRenderer>(); if (left == true) { x = -0.5f; } else { x = 0.5f; } void Update() { transform.Translate(x, 0, 0); } とにかく手探りで書いてみました。 実行したところ、やはり弾が生成された地点で止まってしまいます。 どこを直せばいいのでしょうか… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/206
207: タワー ◆j2ZL4YtpzY [] 2020/04/20(月) 21:16:59.91 ID:IQn62GFy >>206 xの値変わって無くないですか? 方向はStart()で決めてるんでその後のxの加算減算はUpdate()内で行えば動きませんか? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/207
208: 名前は開発中のものです。 [sage] 2020/04/20(月) 21:28:27.99 ID:vPtvjXeA >>205 おかげさまで導入することができました ちなみに自分がひっかかってたのはダウンロードの仕方からわからなかったのですが サイトの Clone or download → Download ZIP から落とせました。 たぶんダウンロード出来てたとしても導入でつまづいてたと思うので(英語わからない) 助かりました ありがとうございます! http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/208
209: 名前は開発中のものです。 [] 2020/04/20(月) 22:10:13.03 ID:zd2flDEV >>207 Startでxに代入している-0.5fや0.5fは方向を決めるだけのものなんですか? であればUpdate内にxと書いただけでは動かないのは納得です… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/209
210: 名前は開発中のものです。 [] 2020/04/20(月) 22:15:09.57 ID:j+CwVrdp >>206 これでどうだ GameObject Player; SpriteRenderer Renderer; public float x; public bool left; void Start() { Player = GameObject.Find("Player"); Renderer = Player.GetComponent<SpriteRenderer>(); } void Update() { left = Renderer.flipX; if (left == true) { x = -0.5f; } else { x = 0.5f; } transform.Translate(x, 0, 0); } } http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/210
211: 名前は開発中のものです。 [sage] 2020/04/20(月) 22:26:02.98 ID:j+CwVrdp 発射後には方向動かしたくないのか 失礼 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/211
212: 名前は開発中のものです。 [] 2020/04/20(月) 22:30:08.28 ID:zd2flDEV >>211 そうなんです! これだとプレイヤーの向きを変えるたびに弾の方向も変わってしまうんです… わざわざ書いてくださってありがとうございます http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/212
213: 名前は開発中のものです。 [sage] 2020/04/20(月) 22:47:15.92 ID:7TeDGIGu >>212 206で動かない? そもそもこのスクリプトは弾についてますか? あとxの値が小さすぎるかもしれませんので、おおきくするとか。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/213
214: タワー ◆j2ZL4YtpzY [] 2020/04/20(月) 23:01:34.95 ID:IQn62GFy >>209 あ、分かった二ヶ所です まずStart()にある if(left == true) … をUpdate()へ移動 んで加算減算ですが x = -0.5f ではなく x -= 0.5fとx += 0.5f これならどうだっ!? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/214
215: 名前は開発中のものです。 [sage] 2020/04/21(火) 00:16:51.48 ID:VK5HUOlH >>206 GetComponentする前にRendererを参照してるからぬるぽ出てるんじゃないの? Renderer=の部分をleft=の上に移動してみては http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/215
216: 名前は開発中のものです。 [] 2020/04/21(火) 01:34:28.12 ID:TxUS3yyD >>212 https://imgur.com/lOxmncE こういう感じ?弾はプレハブをinstantiateで生成してるでいいのか? GameObject Player; SpriteRenderer Renderer; public float x; public bool left; void Start() { Player = GameObject.Find("Player"); Renderer = Player.GetComponent<SpriteRenderer>(); left = Renderer.flipX; } void Update() { if (left == true) { x = -0.05f; } else { x = 0.05f; } transform.Translate(x, 0, 0); } http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/216
217: 名前は開発中のものです。 [] 2020/04/21(火) 02:35:32.80 ID:eGonr+6D >>213 このスクリプトは弾についてるやつです これだと生成された場所で弾が止まってしまいます… transform.Translate(0.5f,0,0)でいい感じだったので数値はこれでいいはずなんですが…。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/217
218: 名前は開発中のものです。 [] 2020/04/21(火) 02:39:51.81 ID:eGonr+6D >>214 >>216 お二方ともご丁寧にありがとうございます。 そうですね。弾はInstntiateで生成してます。 試してみます。 >>215 謎エラーが出てたのはこれが原因かもしれません… 完全に見落としてました、ありがとうございます http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/218
219: 名前は開発中のものです。 [sage] 2020/04/21(火) 07:56:58.30 ID:lxHdAL0J >>217 ほな違うかー。それやと>>206で動くはずやもんな。 なんやろなー、一度update内をtranslate(1,0,0)だけにしてまず動くか試してみぃ。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/219
220: 名前は開発中のものです。 [] 2020/04/21(火) 10:03:30.31 ID:eGonr+6D >>216 この方のスクリプトで試したところ、理想通りの動きをしてくれるようになりました >>214さんのスクリプトも試してみようと思います 数日にわたり本当にありがとうございました! しっかり勉強します…! http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/220
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 782 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s