【ゲームエンジン】Unityなんでも質問スレpart12

■ このスレッドは過去ログ倉庫に格納されています
2023/11/06(月) 16:50:23.83ID:aWH6Xwln
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
質問と答え以外は禁止
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

■前スレ
【ゲームエンジン】Unityなんでも質問スレpart11
https://mevius.5ch.net/test/read.cgi/gamedev/1691129256/l50
707名前は開発中のものです。
垢版 |
2023/12/16(土) 21:54:48.19ID:pwyM23oP
>>706
なるほど、2Dで画像を変えたいと。
それなら話は分かった
親子関係を工夫したらスケールでも対応できないことはないが。
>>704の質問ならまずどっちでもできる
GetComponentでBoxColliderを変数で取得してそのプロパティに
数行にかけてアクセスする
Bの方法もできる
ただBの方法はSetActiveで切り替えないといけないからエキスパートは
避けるんじゃなかろうか
ショボゲーなら考慮に入れる必要はなさそう
708名前は開発中のものです。
垢版 |
2023/12/16(土) 21:58:34.93ID:pwyM23oP
>>706
それといずれの方法でもコライダーの大きさを変更するということで
当たり判定的にバグの温床になる可能性があるからそこはデバッグ気をつけたほうがいいね
2023/12/16(土) 23:15:50.08ID:2zt7osoY
やり方は何通りもある。
だからどうしてもやりたい、教えて欲しいなら、どんな仕様かをマックス〜ミニマムまで書いた方が良い。
マリオの仕様なら、例えば正方形のコライダを最初から上段下段で用意しといて上は消しておくとか。
絵を正方形時、デカ時を用意しておき切り替えるとか何通りでも出てきてしまうよ。
2023/12/17(日) 00:22:26.81ID:y/RcXDqC
>>707
ありがとうございます。

>GetComponentでBoxColliderを変数で取得してそのプロパティに
>数行にかけてアクセスする

でいこうとおもいます。
で、すみません、
Collider2D.offsetはx,yを持ってますか?
リファレンスになんも書いてないので、、、、
https://docs.unity3d.com/ja/2021.2/ScriptReference/Collider2D-offset.html

要は、get componentでbox collider2Dを取得して
そこのoffsetのxとy、sizeのxとyの値を変えてやればいいわけですよね。
BoxCollider2Dのリファレンス見てるんですが
それぞれの変数にxとyがあるという認識で問題ないでしょうか?
リファレンスに記載が無くて、なんだよって感じなんですが。

もしくは変更方法の手段間違ってますか?

>>709
>マリオの仕様なら、例えば正方形のコライダを最初から
>上段下段で用意しといて上は消しておくとか。

そのアイデア良いですね。今回やりたいことには当てはまりませんが
そのアイデアはメモっときます!ありがとうございます。
711名前は開発中のものです。
垢版 |
2023/12/17(日) 00:25:35.73ID:iN66458J
>>710
よく見ろ
Vector2って書いてるだろ
当然xとyのプロパティを持ってる
2023/12/17(日) 00:42:09.98ID:y/RcXDqC
>>711
あー!理解しました!
なるほど!!ありがとうございます!
2023/12/17(日) 04:29:52.79ID:y/RcXDqC
すみません、boxcollider2dの当たり判定の枠の色を変更できますか?
ディフォルトのはあまりに薄く目立たない色なので
見えづらく確認するのに苦労してるので、、、、。
2023/12/17(日) 04:31:05.85ID:y/RcXDqC
デフォルトじゃ緑色?っぽいじゃないですか
見辛いです、まじで。赤とかにしたいです。
2023/12/17(日) 08:58:28.30ID:6FOll7SA
UnityでBoxCollider2Dの当たり判定の枠の色を変更することは、デフォルトの設定では直接行うことができません。Unityのエディタで表示される当たり判定の枠の色は、通常は変更できないからです。ただし、いくつか代替的な方法があります。

カスタムエディタスクリプト: Unityのエディタスクリプトを使用して、ゲームオブジェクトにカスタムの当たり判定表示を実装できます。この方法では、Gizmosを用いて任意の色で当たり判定の枠を描画できます。
デバッグ用のビジュアル: ゲームオブジェクトに追加する別のコンポーネント(たとえばSpriteRenderer)を使用して、当たり判定の範囲を視覚的に表示することができます。これにより、当たり判定の枠とは別に、目立つ色で範囲を示すことができます。
Unityの設定の調整: Unityの環境設定で、Gizmoの透明度や一部の表示設定を調整することができます。これにより、デフォルトの当たり判定の枠を少し目立たせることが可能ですが、色自体の変更はできません。
カスタムエディタスクリプトを使用することで、最も柔軟に当たり判定の表示をカスタマイズできますが、スクリプトについての理解が必要です。Unityのドキュメントやコミュニティフォーラムを参考に、必要なスクリプトを作成することをお勧めします。
716名前は開発中のものです。
垢版 |
2023/12/17(日) 09:16:01.34ID:iN66458J
https://docs.unity3d.com/ja/2021.2/Manual/Preferences.html#colors
colorsの項目見たけど確かにcollder無いな
無理っぽい
アセットで色付けのやつがあった気がするから探してみたら?
717名前は開発中のものです。
垢版 |
2023/12/17(日) 09:33:24.58ID:Ka0egrif
こんにちは例のヤツです
今日もお世話になります
おかげさまで順調です
さて、スクリプトからライトを生成しPointライトにしました
すると影をおとさないことに気づいた
影ONにしたい品質はミドル
以上よろしくお願いします
2023/12/17(日) 10:10:08.90ID:u/2CEZXD
おちょくってんのか
人煮物尋ねる言葉とは思えん
719名前は開発中のものです。
垢版 |
2023/12/17(日) 10:26:30.21ID:iN66458J
ワロタw
720名前は開発中のものです。
垢版 |
2023/12/17(日) 10:33:01.55ID:Ka0egrif
まあそう言わんと
721名前は開発中のものです。
垢版 |
2023/12/17(日) 10:46:19.38ID:Ka0egrif
そもそもスマホなので字をうつのが大変なんですは
Jane使えなくなって、ちみらはパソコンでやれているのですか
2023/12/17(日) 11:43:38.12ID:9+BrM7ZZ
janeが使えないならmate使えばイイじゃなーい
2023/12/17(日) 15:10:00.33ID:Sgnfr1zg
そこはケーキだろ
2023/12/17(日) 15:58:02.17ID:y/RcXDqC
>>715
すみません、長文で書いてくださって大変嬉しいのですが
自分が初心者すぎてその内容がまったく理解できません。
ただ、
>Unityの設定の調整: Unityの環境設定で、
>Gizmoの透明度や一部の表示設定を調整することができます。
>これにより、デフォルトの当たり判定の枠を少し目立たせることが可能です

これを実行したいと思ったんですが、触る項目が多すぎて
当たり判定の枠を少し目立たせるためにどれをいじるべきかが
わかりません。色々触ってみたいところですが戻せなくなったり
取り返しのつかない変更をしてしまうことへの懸念もあり、、、

すみません「これとこれ触りャーいいんじゃない?」みたいなアドバイス
いただけませんでしょうか?
自分としては、BoxCollider2Dの当たり判定の枠(線)の色が
今より少しでも目立ってくれればそれで満足です。
2023/12/17(日) 16:21:29.07ID:3LCyTGbN
すみません質問です
ShaderについてなんですがビルトインRPラインだとUnityCG.cgincにUnityObjectToClipPosなどのヘルパー機能があると思いますがHDRPだと無いです
どのように実装すればよいでしょうか
2023/12/17(日) 16:31:34.81ID:9+BrM7ZZ
unity コライダー 色
これで出てきたのじゃあかんのん?
2023/12/17(日) 17:24:25.55ID:aMBbTNEG
>>724
ChatGPT
UnityでBoxCollider2Dの当たり判定の枠をより目立たせるために、Unityのエディタの設定を調整する方法を説明します。ご心配なく、これらの設定はいつでも元に戻すことができます。

Unityエディタの「Edit」メニューを開く: Unityのメインメニューバーで「Edit」をクリックします。
「Preferences」を選択: 「Edit」メニューから「Preferences」(環境設定)を選択します。
「Gizmos」タブを探す: 「Preferences」ウィンドウの中にいくつかのタブがあります。「Gizmos」タブを探してクリックします。
Gizmoの透明度を調整: 「Gizmos」セクションには、さまざまなGizmoの設定があります。ここで「3D Icons」のスライダーを調整して、Gizmoの透明度を変更できます。このスライダーを左に動かすと、Gizmoがより目立つようになります。
Gizmoのサイズを調整: また、「Gizmo Size」スライダーもあります。このスライダーを調整すると、Gizmoのサイズが変わります。大きくすると、より目立ちます。
変更を適用して閉じる: 設定を変更した後は、「Preferences」ウィンドウを閉じてください。変更は自動的に保存されます。
これらの設定は、BoxCollider2Dの枠の色を直接変更するものではありませんが、Gizmoの透明度やサイズを調整することで、枠をより目立たせる効果が期待できます。安心して試してみてください。もし元に戻したい場合は、同じ手順で「Preferences」に戻り、変更したスライダーを元の位置に戻すだけです。

返答が気に入らなきゃOpenAIに文句を言ってください
さもなきゃご自分で検索するぐらいしてもバチは当たらないと思いますよ
2023/12/17(日) 17:43:37.03ID:9+BrM7ZZ
まあここに来るやつってさ
俺の代わりに検索しろや!

ってのばかりだからなぁ
729名前は開発中のものです。
垢版 |
2023/12/17(日) 19:20:44.90ID:7X0BNCUf
え?ここは質問スレですよ
どっちがお客だと思ってんの
答えたい人のためのスレですよ
質問がいらない奴はスレ見なければいい
2023/12/17(日) 19:36:00.98ID:y/RcXDqC
「Preferences」ウィンドウに「Gizmos」が無いです。

だからChatGPT好きじゃ無いんですよね
2023/12/17(日) 19:52:12.36ID:s6jjUf5Q
GPT4の人の欺き方が洗練されて来て草
2023/12/17(日) 20:18:37.85ID:y/RcXDqC
>>726
スクリプトで色をつける的なものですよね。すべて検索して試みています。
結果、どちらのケースに当てはまり
すべて使い物にならないという残念な結果となっています。

1、作った時期が古すぎて"BoxCollider2D"には対応していない。(よってそのスクリプトをオブジェクト(BoxCollider2D付きの)にアタッチしようとするとエラーになる)
2、作った人が3DのColliderのことしか頭に無くて、BoxCollider2Dに対応していない。(よってそのスクリプトをオブジェクト(BoxCollider2D付きの)にアタッチしようとするとエラーになる)
2023/12/17(日) 20:31:00.18ID:y/RcXDqC
というか、>>730のこともそうですが
UnityってバージョンによってぜんぜんUIが変わってるんですね。
いろいろ参考にしようと思って調べていて最近思う様になりました。

恐ろしいことに自分は2021年のバージョンですがGizmosという文字自体
「Fade Gizmos」という項目でしか見ることはありません。
そしてこの「Fade Gizmos」も調べてみましたが
コレダーの枠にはなんら関係ない様です。

まあ、当たり判定の枠云々は>>716さんのいう通り、
色がえも目立たせることも「出来無い」ってことですね。
諦めます。
制作画面中の背景やら実行後の画面やら
なんかいろんな色をいじれるのに
コレダーのフレームに目を向けてないとか、残念な仕様ですね。
2023/12/17(日) 20:33:34.70ID:y/RcXDqC
まあでも本来ゲーム制作とは関係ない部分なので、
そこはスルーして、また頑張ります!
2023/12/17(日) 20:35:42.32ID:6FOll7SA
unity コライダー 可視化 2d
で検索したら
Collider2Dを実機で可視化してみた【Unity】
ってあるけどURLは貼るとNGになるな
古いから動かない?試してないけど
探せばいくらでもあると思うけど
自分の環境で動くの探すより動くように自分でなおした方がはやいよー
2023/12/17(日) 20:35:45.53ID:y/RcXDqC
2Dの制作においても、キャラの画像の上にコレダーの枠を重ねて考えるんで
色の相性が悪かったらその枠はいくらでも見えにくくなるんですよね。。。
2023/12/17(日) 21:42:59.22ID:9+BrM7ZZ
あぁ如何にどうやるかというより
如何に難癖つけよーと考える人やね
738名前は開発中のものです。
垢版 |
2023/12/17(日) 22:08:11.00ID:Ka0egrif
こんばんはお世話になっております
>>717の件はそろそろできましたか?
以上よろしくお願いします
2023/12/17(日) 23:03:44.29ID:9+BrM7ZZ
そろそろできましたか、と来たよ

ほら早く俺のためにコード書けよ

ってさ
740名前は開発中のものです。
垢版 |
2023/12/17(日) 23:09:13.21ID:Ka0egrif
>>739
もちろん簡単ではないと思いますので、
初心者のかたは無理に答えなくて大丈夫です
2023/12/17(日) 23:17:04.36ID:mTUjiFuX
このスレが役に立った試しがない
742名前は開発中のものです。
垢版 |
2023/12/17(日) 23:57:52.25ID:iN66458J
>>738
お前コテつけろ
そしたら教えてやる
2023/12/18(月) 00:19:42.56ID:K1IWBfLh
>>739
たぶん小学校2年生くらいの子が大人のふりして質問してるんだろw
2023/12/18(月) 00:25:36.30ID:MVkMDNT9
コライダーが見えやすいようにキャラの色変えればいい
確認したら戻してさ
2023/12/18(月) 09:34:20.52ID:6/OIgB8+
ヒントやとっかかりはいっぱいあるのに自分でなんとかしようとしないヤツにアドバイスは無駄だよ
2023/12/18(月) 12:08:04.97ID:fQTkHHBY
>>721
JaneXenoでいいじゃん
747名前は開発中のものです。
垢版 |
2023/12/18(月) 13:13:20.26ID:qHNNjjJ/
>>745
すこしズレてますね
ワイにしかできないことは全て自分で解決しています
チミらに任せられる件しかお願いしていません
以上よろしくお願いします
2023/12/18(月) 13:41:44.95ID:YvlYLwbt
この件、どうもドーンおじがでてこないと思ったらそういう事か(笑)
749名前は開発中のものです。
垢版 |
2023/12/18(月) 15:15:59.45ID:UniXh8AV
>>748
このハゲ!
2023/12/18(月) 19:20:48.61ID:791LJWa5
まぁ好きにしてくれ。
2023/12/18(月) 19:37:17.69ID:PYe56igk
諸君!トランジスタ技術の圧縮が世にも奇妙な物語23秋の特別編で放送されるぞ!
トランジスタ技術を分解して広告部分を取り除いて再度製本するのが競技になってる世界を描いたSF短編小説のドラマ化だ!
Unityスレにぴったりの物語だろ!?お前が最後にトラ技買ったのいつだよ!?11月11日放送だ!見逃すなよ!m9⎛˶◜◡◝˶⎞ドーン!
2023/12/19(火) 00:00:29.86ID:7SuYCp/2
Randomクラスを扱う場合に、
"参照があいまい"的なエラーが出るじゃないですか?
SystemとUnityEngine両方にRandomクラスが定義されているから、という理屈はわかりました。

で、その対処方が
UnityEngine.Random.Rangeと名前空間ごと指定するで、
それをすれば問題なく動きました。

ただ、調べるともうひとつ対処法があって、
スクリプトの一番最初に書いてるusing System;を削除、というのがあったんですよ。
実際そうしてもエラーは出なくなりました。
しかし、using System;を削除って、なんか支障が出そうなんですが
そんなことないんでしょうか?
これはぜんぜん使われる対処法なんでしょうか?

Randomクラスを使うことはよくあると思うんです。
みなさんは、どちらの対処法をやってますか?
名前空間ごと指定、ですよね?
2023/12/19(火) 00:28:34.39ID:x10mevWK
削除後じゃなくて別名指定できるよ
754名前は開発中のものです。
垢版 |
2023/12/19(火) 00:34:42.90ID:errhc0zQ
こんばんはいつもお世話になります
>>717の件は自己解決しました
大義であった
755名前は開発中のものです。
垢版 |
2023/12/19(火) 00:58:35.07ID:rcHhGP0s
>>754
どういたしまして
2023/12/19(火) 01:35:05.39ID:zHZdEhB3
>>754
ワシに感謝しろよ
2023/12/19(火) 16:22:37.21ID:7SuYCp/2
すみません、自分でも調べまくってるんですが
その原因を突き止められず困り果ててるんでお知恵をお貸しください。

無数のブロックを次々生成している状況で、
そのブロックにはすべて判定のためのbox collider2dを子オブジェクトで作っており
プレイヤーがその判定枠と接触したらアイテムを生成する処理になってます。
接触判定にはOnTriggerEnter2Dを使っています。

現在テスト中で
そのブロックを次々作ってプレイヤーと接触させては
アイテムを出現させて、を繰り返してるんですが
ブロックを数十個生成してる途中、稀にひとつほど
プレイヤーを接触する前にアイテムを生成するブロックが生まれます。
プレハブのブロックなのでスプリクトは同じはずだし、
アイテム生成には条件式にOnTriggerEnter2Dの判定を入れているので
毎度ひとつのブロックだけそうなるのも意味不明ですし、
プレイヤーが接触してないのにアイテム生成されるのも意味不明です。

熟練者の皆様ならもしかしたら推測できるのかなと思って、、
このバグの原因を調べる術を教えてください。
(コードを貼れば早いかもしれませんがすでに膨大な量ですのでそこは割愛させてください)
2023/12/19(火) 16:26:37.16ID:7SuYCp/2
個人的には、アイテム生成の判定に
OnTriggerEnter2D==trueを使ってる時点で
なにも接触してないのにアイテムが生成されるのは
ありえないと思っています。

しかし、別の中にかの作用でまったく関係ない場所で
バグが発生する、というのもよくある話なので
先輩方ならなんか推測できるかなと思って相談させて頂きました。
2023/12/19(火) 16:31:25.76ID:7SuYCp/2
あ、すみません。解決しました。
書き込んだあと、すぐ原因突き止めました。
2023/12/19(火) 18:19:10.15ID:x10mevWK
書き込むと何故か解決する

あるある
2023/12/19(火) 18:43:48.04ID:jor50pa0
マジでこれあるんだよな
2023/12/19(火) 18:45:25.31ID:OAl8ngR0
ワイの環境は明窓浄机という言葉が相応しい!m9⎛˶◜◡◝˶⎞ドーン!
ttps://i.imgur.com/tJ6x7JM.jpeg
2023/12/19(火) 18:47:48.54ID:AbGIjmnR
rigidbody2dの判定回数を連続にすればいいと思いますとまぁ
解決してるだろうけど書いておく
2023/12/19(火) 19:08:28.74ID:zkgZfzRE
なんで解決法を書かないの?
2023/12/19(火) 21:36:05.95ID:JdOvXqXW
そりゃ問題提起のため言語化して整理してるから。
2023/12/19(火) 21:42:18.46ID:x10mevWK
解決法?そりゃお前らにかんかーねーから
767名前は開発中のものです。
垢版 |
2023/12/19(火) 22:14:57.80ID:Mib7bgnr
あるあるすぎてこわい
2023/12/19(火) 23:34:13.74ID:zkgZfzRE
俺らに関係なくても
同じような悩み持った人が>>757の質問にたどり着くかもしれないだろ
2023/12/20(水) 07:03:42.63ID:rcYWDYRg
すみません、

public GameObject targetObj;

[SerializeField] GameObject targetObj;

このどちらの記述方法でもインスペクタにtargetObjの枠が生成されますよね?
なにか違うんでしょうか。
使い分けとかあるんでしょうか?
770名前は開発中のものです。
垢版 |
2023/12/20(水) 07:44:58.98ID:ggPGSH2z
>>769
上のはオブジェクト指向においてそのメンバが他のクラスにも公開されることを
意味してて
下のはオブジェクト指向においてそのメンバが公開されていない、つまり
「隠蔽」されていることを意味してる
下のは「隠蔽を維持したままインスペクターに表示させたい」という仕様
エキスパートのコードを見ると下のコードが書かれることが多い
そういうのはオブジェクト指向といって主に複数人開発で用いられる
俺はぼっち開発なのでそんなの気にしたことない
余裕で上のやり方を使っている
771名前は開発中のものです。
垢版 |
2023/12/20(水) 07:51:51.43ID:C7Jnfw35
>>769
パブリックは他のスクリプトからでもそのプロパティを使えるようになる
シリアライズフィールドはインスペクターで値を変更できるようになる他のスクリプトからは使えない
プロがシリアライズフィールドを使う理由は他のスクリプトからそのプロパティを変更されて悪影響を及ばされる可能性があるから
外部に出すプロパティとそのスクリプトでしか使わないプロパティをきちんと分けてる
2023/12/20(水) 08:38:24.68ID:tcfIGz3i
>>768
大丈夫。>757の質問が意味不過ぎて例題にならない
773名前は開発中のものです。
垢版 |
2023/12/20(水) 09:17:17.08ID:C7Jnfw35
Unityのエディター拡張で3DViewPortって作れるんだっけ?
2023/12/20(水) 09:22:10.77ID:wQ4ITWMI
コードをうまく言語化して説明できないという事は
考えが整理できてないからまず書き出して整理してみよう
というあるあるだろ
2023/12/20(水) 09:26:03.26ID:wQ4ITWMI
>>773
できるよ
でも拡張で作ると基本的にインスペクタでいじれないから結局あまり意味ない
2023/12/20(水) 09:34:46.40ID:wQ4ITWMI
レベルエディタレベルのものをもう一画面追加できるならむしろ聞きたいけど
2023/12/20(水) 10:57:43.83ID:z+oVE4GA
裏コード777!m9⎛˶◜◡◝˶⎞ドーン!
778名前は開発中のものです。
垢版 |
2023/12/20(水) 12:06:03.92ID:C7Jnfw35
>>775
どうやってやるか知ってる?
まだ構想段階だけどプレハブモデルを開いてそれだけ表示するビューを作りたいなぁと思ってる
779名前は開発中のものです。
垢版 |
2023/12/20(水) 12:12:41.81ID:C7Jnfw35
プレハブビューみたいな感じ
2023/12/20(水) 16:21:49.58ID:rcYWDYRg
>>770
>>771
皆様、丁寧に教えてくだってありがとうございます。
なんとなく理解できました。
触らせたくないなら別に前者でもprivate GameObject targetObj;とすればいいんじゃないかと思ったんですが
なるほど、privateで宣言するとインスペクタに表示されないんですね。。
つまり、後者はInspectorからアクセスしたいけども
他のスクリプトからは触れさせたくない、要はインスペクタで触りたいけど、privateでお願いって時には
[SerializeField] を利用するんですね。

だとすると自分の様な初心者にはprivateであるべき状況というのが
まだ出くわしたことないし、その想像もできないんで
>>770さんみたく前者の方法で問題ない感じですね。自分もぼっち開発ですし。
またひとつ成長できました、ありがとうございます!
781名前は開発中のものです。
垢版 |
2023/12/20(水) 16:22:37.10ID:2Ax+7Ufb
>>780
おうがんばれ
2023/12/20(水) 16:23:13.46ID:rcYWDYRg
早速、今まで理由もわからず[SerializeField] 型名 変数名; と宣言してたものを
すべてpublic 型名 変数名;に置き換えてみましたが
今の所何も変わらず正常に動いてくれています。

基本的に、[SerializeField] で宣言してたものをpublicに変更しても
そのアタッチしたものが他所から触れる様になるだけで
それ以外は別に一緒で支障が出ることなく変更できる認識でいますが
それで問題はないですか?

[SerializeField] じゃないとインスペクタに表示されないとか
宣言できないとかいうケースないですよね??
2023/12/20(水) 16:25:34.25ID:rcYWDYRg
例えば「ゲーム制作してるならセーブのシステム作る時とか、絶対[SerializeField]使うことになるから」、とか。
784名前は開発中のものです。
垢版 |
2023/12/20(水) 16:36:51.90ID:2Ax+7Ufb
問題ないよ
上でも言った通り他のスクリプトから触れちゃうから取り扱い注意しないと変な値を入れて不具合出るかもって感じ
2023/12/20(水) 16:41:48.63ID:rcYWDYRg
>>784
ありがとうございます!
2023/12/21(木) 00:28:30.61ID:2yqws0uM
>>778
先に言っとくけどsceneビューで表示した方が速いし軽いし便利
public class Interactive3DViewport : EditorWindow
{
private Camera viewportCamera;
private GameObject prefabInstance;
private string prefabPath = "Assets/Path/To/Your/Prefab.prefab"; // プレハブのパス
[MenuItem("Window/Interactive 3D Viewport")]
public static void ShowWindow()
{
GetWindow<Interactive3DViewport>("3D Viewport");
}
void OnEnable()
{
GameObject cameraObj = new GameObject("Viewport Camera");
viewportCamera = cameraObj.AddComponent<Camera>();
viewportCamera.clearFlags = CameraClearFlags.SolidColor;
viewportCamera.backgroundColor = Color.gray;
GameObject prefab = AssetDatabase.LoadAssetAtPath<GameObject>(prefabPath);
prefabInstance = Instantiate(prefab);
}
void OnGUI()
{
if (viewportCamera != null)
{
Rect camRect = new Rect(0, 0, position.width, position.height);
viewportCamera.pixelRect = camRect;
Handles.DrawCamera(camRect, viewportCamera);
}
}
}
2023/12/21(木) 00:29:32.69ID:2yqws0uM
無茶評判悪くて使ってくれない
788名前は開発中のものです。
垢版 |
2023/12/21(木) 06:24:35.71ID:/spufi4i
>>786
めちゃくちゃ助かります!
ありがとうございます!
2023/12/21(木) 08:30:53.17ID:2yqws0uM
>>788
あと
void OnDestroy()
{
if (viewportCamera != null)
{
DestroyImmediate(viewportCamera.gameObject);
}
if (prefabInstance != null)
{
DestroyImmediate(prefabInstance);
}
}

しないと解放されないしいい事なんかない
モーション再生したりとか色々自力になるし
790名前は開発中のものです。
垢版 |
2023/12/21(木) 08:32:41.26ID:/spufi4i
>>789
なるほど
それはそのウィンドウ閉じたときで良いんですよね?
2023/12/22(金) 06:47:26.04ID:BHw2hwhe
すみません、素朴な疑問なんですけど
Input.GetKey("space");って今のUnityじゃエラーになるんですか?
Input.GetKey("KeyCode.Space");なら動きました。
どういうことでしょう?
792名前は開発中のものです。
垢版 |
2023/12/22(金) 07:31:08.46ID:5SOhTIkJ
そりゃエライコッチャ
793名前は開発中のものです。
垢版 |
2023/12/22(金) 07:58:17.85ID:2bdzIp1f
>>791
下のコードは何かの間違いじゃないか?
俺の知識では動く道理がない
2023/12/22(金) 08:24:48.28ID:OLG1WtwV
KeyCode.Spaceという名前をつけたんだろw
2023/12/22(金) 09:16:45.04ID:bOlEfo0c
役所とかの記入例に
山田太郎
ってあるとそのまま書いちゃうタイプとか
2023/12/22(金) 09:46:30.94ID:E/2yW4GT
ジェンダーレスの観点から最近の記入例の名前って、、、
2023/12/22(金) 17:17:43.62ID:BHw2hwhe
すみません、徹夜明けで>>791は寝ぼけていた様です。
言いたいことは、
if(Input.GetKeyDown( )){
処理
}の記述をしたとして、
if(Input.GetKeyDown("Space"))はエラーにならないのに
if(Input.GetKeyDown("UpArrow"))はエラーになるんです。
両方、KeyCodeに書かれてるやつです。
なぜUpArrowは「入力キーの名前: UpArrow が不明です」とエラーが出るんです?

なのでUpArrowを使いたい時は
Input.GetKeyDown(KeyCode.UpArrow)という記述方法にしてるんです。
これだと動きます。

どーいうことですか?
2023/12/22(金) 17:21:22.32ID:BHw2hwhe
>>794
俺より初心者ですか?
これでも正常に動くんですが。
if(Input.GetKeyDown(KeyCode.Space))

恥かかない様にここ見ておいた方がいいですよ。
https://raruton.com/unity-how-to-use-input-key/
↓抜粋しときますね
>Inputクラスを使用することでキーボードを検出することができます。
>各キーコードは、以下の***の部分に変えることで使用することができます。
>Input.GeyKey(KeyCode.***)
>矢印キー
>上キー UpArrow
>下キー DownArrow
>右キー RightArrow
>左キー LeftArrow
2023/12/22(金) 17:26:43.86ID:BHw2hwhe
ああ、KeyCode.***をダブルクオートで囲んでるのは間違いだよって
言いたかったんですね。それは失礼しました。

では、ダブルクオートで囲む場合の
上キー取得はどう書けばいいですか?
なぜ"UpArrow"でいけないのか理由を知りたいです。
2023/12/22(金) 18:16:58.93ID:E/2yW4GT
さぁ
恥かかないようにプロ
ドーンおじの出番だぞ
2023/12/22(金) 21:09:25.57ID:8+fTW2o0
 |._、|
 ||不||  呼ばれて飛び出てドドドドーン!
 ||審||
 ||者||⌒ ミ
 ||で||д・`) いや、””で囲っても動くって知らんかったわ
 ||す|| とノ  マジならヒッパルコスショック級の大発見だよ!
 |  ̄.|ωJ
2023/12/22(金) 22:57:20.07ID:g3YA246s
そういう時プログラマーはKeyCode.UpArrowの中身を見てみようと思うもんだよ
803名前は開発中のものです。
垢版 |
2023/12/22(金) 23:57:39.56ID:8Y1XMAir
自信満々に「恥かかない様にここ見ておいた方がいいですよ(キリッ」とかいうから見てみたら個人のHPか
スクリプトリファレンスでも持ってきたのかと思った
で、ちょっと見てきたが、stringで指定する場合はInput Managerのスクリプトリファレンスにあるとおりの名称でないとダメみたいだな
出所のよくわからん情報を鵜呑みにする前に、正規の手順書を読んでおいた方がいいぞ
あとif(Input.GetKeyDown("Space"))は同様にエラー吐くはずだ(というか試したら吐いた)から、まだ何か間違ってそう
GetKeyDown("space")なら問題ない
804名前は開発中のものです。
垢版 |
2023/12/23(土) 18:59:12.82ID:HGJpkM3P
たぶん質問者を装った新手の荒らしだろう
普通の人は「恥かかない様にここ見ておいた方がいいですよ」とか絶対言わない
805名前は開発中のものです。
垢版 |
2023/12/23(土) 19:45:00.12ID:JuXwVXQj
>>799
ダブルクォートで囲う方はひとまず覚えなくて良いと思うけどな。
KeyCodeを引数として取る方があるならそちらを使うべきだ。
どのプログラム言語でもダブルクォートで囲むと文字列になるので実行するタイミングでないとエラーに気づかないよ。
KeyCodeを引数に取る方なら誤りがコーディング時にわかる。

Unity初心者なので推測だけど、他言語の経験からすると文字列を引数として取る場合はリフレクションで合致するメソッドを呼び出すことになるはず。
エラーになるのは合致するメソッドがないってことだろう。Input.GetKeyDownのソースコードを読むのが手っ取り早いかと思う。文字列からメソッド呼び出しをどのように組み立ててるのかわかればどういった文字列を渡せばいいか見えるだろう。
806名前は開発中のものです。
垢版 |
2023/12/24(日) 07:00:55.84ID:QdSrzL7+
質問です
今ロードされているクラスやメソッド、プロパティなどを一括でリストアップする方法はありますけ
javascriptだとよくやると思うんけんど
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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