【ゲームエンジン】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
2023/12/11(月) 03:25:57.10ID:KlVODyrh
>>618
テクスチャを書き直す方法で合ってると思うよ

https://i.imgur.com/vN9xraC.png
モデル(のマテリアル)に↑みたいなテクスチャ貼っつけてどの座標がどのパーツに対応してるか調べればいい
もしUVがぐちゃぐちゃなら諦めるしかないけどまぁ大抵のモデルは整えてあるだろうし大丈夫でしょ
621名前は開発中のものです。
垢版 |
2023/12/11(月) 08:22:10.59ID:l6PI2DA7
将来的に他のモデルでも同じことするなら、BlenderインストールしてUV展開のやり方調べるといい
そんな難しいものでもないし
622名前は開発中のものです。
垢版 |
2023/12/11(月) 13:03:06.43ID:YoIuj+VE
思ったより解決策力技しかないんやな
ありがとうこ
623名前は開発中のものです。
垢版 |
2023/12/11(月) 13:03:21.34ID:YoIuj+VE
思ったより解決策力技しかないんやな
ありがとう頑張ります
624名前は開発中のものです。
垢版 |
2023/12/11(月) 17:41:35.46ID:LeAnxddn
JSONstorableってのはunity特有の用語なんですか?マニュアルに解説が見つかりません
VaMのプラグイン開発で必要みたいなんですが
2023/12/12(火) 00:46:38.09ID:fxLNnORX
>>619
ありがとうございます。
確かにその通りに記述したら同じ動作になりました!
GameObject型の変数.GetComponent<prefabのクラス名>().Type(5);と記述してたのに
クラス名型の変数.Type(5);だけで実行できる様になりました。

もともと宣言は>>523の教えてくださった
[SerializeField] GameObject prefab_A;
と宣言してインスペクタにprefabのオブジェクトをアタッチして
Unityのこういうものだという流れが掴みかけていたのですが
>>545さんのやり方で
[serializeField] prefabAのクラス名 prefab_A;
prefab_Aにprefabのオブジェクトをアタッチしても
まったく同じ様に動いてます。
そのことで現在ちょっと戸惑っていまして。
というのも、再生したらどちらでもちゃんとプレハブのオブジェクトが生成されるんですが
[SerializeField]にGameObject型で宣言するのと
[SerializeField]にプレハブオブジェクトのクラス型で宣言するのとで
結果が同じということ、後者はプレハブのオブジェクトをアタッチしていないじゃないですか?
(アタッチされてるのもスクリプトみたいですし)
Instantiateの引数にもクラス名しか入れてないですし。

オブジェクト型で作るほうは、クラスもオブジェクト生成もイメージはしやすいですが、
後者はプレハブオブジェクトはそっちのけに感じるのに
前者と同じ様にプレハブのオブジェクトがそこに発生しました。
このふたつの宣言で、なにが起きてうのか解説願いませんでしょうか。
また、同じに見えて、実はなにかが違うのでしょうか?
そしてこのふたつのやり方は、状況によって使い分けすべきなんでしょうか?

Unityを触ってまだ二ヶ月弱ですが
ここをどうしても理解しときたいので、教えて頂けないでしょうか?
お願い致します!
2023/12/12(火) 01:42:41.32ID:aYGItS/H
prefab_A.gameObjectと書けばそれがアタッチされてるGameObjectにアクセスできるだろ?
つまりprefab_AはGameObject全体を持ってるんだよ
だからprefab_Aを渡せばGameObjectごと渡すことになる
2023/12/12(火) 01:46:00.70ID:aYGItS/H
prefab_Aはと言ったけど、厳密にはMonoBehavior(もっというとComponent)を継承したクラスは、だ
628名前は開発中のものです。
垢版 |
2023/12/12(火) 04:31:18.72ID:fxLNnORX
>>626
>prefab_AはGameObject全体を持ってるんだよ
>だからprefab_Aを渡せばGameObjectごと渡すことになる

prefabAのクラス名型でprefab_Aを[serializeField] した場合
Inspectorのprefab_Aのフィールドにプレハブをアタッチしたら
そこには「#のアイコン」と『スクリプト名 (プレハブ名) 』と表示されています。
逆に、[SerializeField] GameObject prefab_A;と宣言して
Inspectorのprefab_Aのフィールドにプレハブをアタッチしたら
そこには「水色のBoxアイコン」と『プレハブ名』が表示されています。
フィールドに表示されるアイコンは違っていても、
どっちも同じことってことですか?

[serializeField] prefabAのクラス名 prefab_A;でも
prefab_AはGameObject全体を持ってるってことなら
なぜ[SerializeField] GameObject prefab_A;という宣言方法も
存在するのでしょうか?

難しく考えすぎでしょうか?
2023/12/12(火) 07:35:58.50ID:ioNZIQJM
プレハブ型(GmaeObject)かスクリプト定義してるクラス型かで、型が違うから同じではない

片方はプレハブそのものでもう片方はそのプレハブにアタッチされているスクリプト(のクラス)
GetComponent()や.GameObjectを使って相互にお互いを取得することはできるというだけで、
Instantiate()がどちらの型でも受け取れて、受け取った型で返す機能を持っているということ

処理の速さ、コードの短いさ、全体の見やすさ、などで好きなようにすればいい
630名前は開発中のものです。
垢版 |
2023/12/12(火) 11:54:15.76ID:X8NZTIoG
コールバックてコマンドとどう使い分けるものなんです?
2023/12/12(火) 12:09:42.00ID:4wxQvP+0
あんたが誰かに電話するやろ
その人が電話中にちょっとトイレいくやろ
ずっと待ってるやろ
時間の無駄やろ

その時にトイレ終わったら電話かけ直してくれ言うやろ
電話くるまで他のことてきるやろ
2023/12/12(火) 13:33:58.28ID:KCOh4QU0
登録しておくとウンコが終わったらコールがバックされるんだよ
633名前は開発中のものです。
垢版 |
2023/12/12(火) 13:44:51.55ID:X8NZTIoG
なるほどありがとうございます。
さっそく次の質問ですが
爆発エフェクトのようなものを作っており
プレハブにあるライトをちかちか点滅させたいです
そのon/offはvisibilityでやれたのですが
Intensicyをコントロールして減衰させたいのです
ふわっと消えるようにしたい
以上よろしくお願いします
2023/12/12(火) 13:52:44.23ID:4wxQvP+0
添削するとね
----
ふわっと消えるようにしたい
以上よろしくお願いします
--
ふわっと言えるようにしたいのですが
これには自分は何々をやってみたのですがだめでした
他に〇〇の数値をいじってみたのですがうんともすんともいいません
どうすればふわっと消えるようになりますか?ちなみに自分の思うふわっとは、このようなサイトにある動きです
2023/12/12(火) 13:54:46.98ID:4wxQvP+0
ていうかコレ質問じゃなくて依頼やな(笑)
636名前は開発中のものです。
垢版 |
2023/12/12(火) 14:24:03.82ID:X8NZTIoG
>>634
質問の意味が伝わらなくてすみません
次の人よろしくお願いします
2023/12/12(火) 18:38:16.23ID:oeA3ArmA
ワイならこうやるね!m9⎛˶◜◡◝˶⎞ドーン!
[SerializeField]
GameObject SEXY;
var SEX = SEXY.GetComponent<Light>().Intensity;
for(i=0,i++,i<100){SEX = Time.deltaTime * i }
Done;
2023/12/12(火) 19:01:30.88ID:exJPvyOi
ドーン!てDoneの意味だったのか
639名前は開発中のものです。
垢版 |
2023/12/12(火) 19:46:07.18ID:X8NZTIoG
>>637
できましたありがとうございます
2023/12/12(火) 19:48:11.70ID:oeA3ArmA
>>639
ワロタ!m9⎛˶◜◡◝˶⎞ドーン!
641名前は開発中のものです。
垢版 |
2023/12/12(火) 20:20:32.65ID:fxLNnORX
>>629
なんとなく理解できました。
ありがとうございます。
2023/12/12(火) 23:01:09.98ID:4wxQvP+0
いやいやいや
どこに書くのかも書いてね~し
コルーチンでもねーし
それでできました~とか

ヤラセかよ(笑)
643名前は開発中のものです。
垢版 |
2023/12/13(水) 00:18:27.98ID:alIszYZF
>>642
質問が高度すぎたようでご迷惑かけました
無事できましたのでもう結構です
2023/12/13(水) 08:12:28.39ID:gWnbxbkZ
いや十分に分かる内容やろ
645名前は開発中のものです。
垢版 |
2023/12/14(木) 18:59:28.78ID:6Ix5C47w
ka2aki86(@佐藤航陽(さとうかつあき))さんがポストしました:
UE5で作られたバーチャルの森、すごいクオリティ。リアルタイムで動かしてるのもすごい。
#UE5 #3DCG
https://x.com/ka2aki86/status/1735150364515860733?s=51&t=v_xy-gl7y1zQf182MLmXWg
646名前は開発中のものです。
垢版 |
2023/12/14(木) 20:18:47.28ID:2/nRwDGX
相談ですが
シーン内に散らばった砲弾をまとめてデストロイしたいとします
名前にbulletを含むobjを全削除したい
以上よろしくお願いします
647名前は開発中のものです。
垢版 |
2023/12/14(木) 20:26:27.16ID:TwyI1wN9
>>646
UE使えば簡単に解決
2023/12/14(木) 21:02:34.79ID:SNLAh3Dy
Tag付けとけ
2023/12/14(木) 21:28:31.83ID:rK/BAlg+
親オブジェクトの子にしといて親を削除
2023/12/14(木) 21:44:42.40ID:gGvWZKBQ
しかしこいつは質問じゃなくて依頼やな
おまえらいいよーに使われてるだけやん
2023/12/14(木) 21:52:24.47ID:LYutgSC4
Instantiateするときに渡すpositionなんですが
「transform.position」と「pos.position」でなにが違うか
具体的に教えて頂けないでしょうか。。。
2023/12/14(木) 21:53:33.12ID:LYutgSC4
あ、失礼しました。理解しました。
653名前は開発中のものです。
垢版 |
2023/12/14(木) 22:07:35.56ID:LwwcinfL
(posって何だろう?)
654名前は開発中のものです。
垢版 |
2023/12/15(金) 00:48:52.01ID:XDSucvvA
>>649
親がデストロイされて
つぎのbulletが出るときに親をまた用意するのがタイミングが合わず難しいかったです
たとえばforeachみたいのでスキャンしてアイテムにbulletが含まれたらデストロイするみたいなことはやれませんか
2023/12/15(金) 02:28:08.26ID:CJ4qvB2V
>>651
あるオブジェクトのトランスフォームポジションを変数にしたものをよくposとか使うよな pos.x=〇〇
2023/12/15(金) 02:45:52.57ID:PYjBX9PH
>>654
子のオブジェクト取得したらいけるかも
たしかtransform.GetChild(i)とかで子を複数取得できた気がする
2023/12/15(金) 08:13:38.53ID:J6NZbXHV
>>654
上に書いてあるやんTag付けりゃ一発で配列に取れるよUnityマニュアルにもTagでのfindは推奨してる
2023/12/15(金) 08:37:53.85ID:T2O79Tds
チュートリアルは頭の可笑しな迷子を作らない為の防波堤だという事がよく分かるな
659名前は開発中のものです。
垢版 |
2023/12/15(金) 09:13:42.97ID:Bs7hsLvx
>>655
そのケースなら「pos.position」にならないと思うのだが。
なるケースはposにtransformを入れないと
2023/12/15(金) 09:42:36.87ID:6E1aoyFH
>>659
君は何を言ってるんだい?w
661名前は開発中のものです。
垢版 |
2023/12/15(金) 09:51:26.97ID:J+3TGhGD
有識者ニキ〜
人型3dモデルの数に比例して上昇するCPU負荷・GPU負荷を抑えるテクを伝授してほしいです
上にあったパフォーマンスチューニングバイブルの最適化手法は一通りやったしシェーダやソースコードは可能な限り最適化してある
3dモデル側で削れるとしたらポリゴン数くらい?他にもなにかあるでしょうか
662名前は開発中のものです。
垢版 |
2023/12/15(金) 10:04:52.19ID:Bs7hsLvx
>>660
Vector3をposに入れたら「pos.position」なんて書き方はできないだろ
2023/12/15(金) 11:28:50.76ID:+91u+x/X
>>662
そうだよ、ワシはトランスフォームポジションでposを使うと言ったまでだが?w
2023/12/15(金) 11:46:33.43ID:T2O79Tds
> Instantiateするときに渡すpositionなんですが
> 「transform.position」と「pos.position」でなにが違うか

「Instantiateする時に渡すVector3なんですが
「Vector3」と「Vector3」で何が違うか」に置き換えられる

具体的には日本語が可笑しいのでは?
2023/12/15(金) 11:54:27.36ID:J6NZbXHV
スレチ
2023/12/15(金) 12:02:03.01ID:P4hePetg
ニキとかJカスきっつ
667名前は開発中のものです。
垢版 |
2023/12/15(金) 12:16:10.51ID:Bs7hsLvx
>>663
じゃあpos.xがおかしくなるじゃないですかw
668名前は開発中のものです。
垢版 |
2023/12/15(金) 12:18:12.24ID:Bs7hsLvx
posにtransformを入れたらpos.xがおかしくなる
posにVector3を入れたらpos.positionがおかしくなる
669名前は開発中のものです。
垢版 |
2023/12/15(金) 12:29:38.63ID:Bs7hsLvx
https://docs.unity3d.com/ja/2019.4/ScriptReference/Transform.html
やっぱtransformにはxyzのメンバ変数はない
もしや長年勘違いしてたのかと思ってビビったがw
2023/12/15(金) 12:29:51.00ID:+91u+x/X
>>668
君は何か勘違いしてるようだ
ワシはposという変数は
Vector3 pos=transform.position
でよく使うと言っているだけだが?w
2023/12/15(金) 12:30:46.37ID:TAzwBKsY
多分>>655は>651が変数名がposなのにTransformを入れてるのを責めてるんじゃね
672名前は開発中のものです。
垢版 |
2023/12/15(金) 12:32:32.38ID:Bs7hsLvx
>>670
ならpos.positionにはアクセスできませんな
2023/12/15(金) 12:36:25.97ID:+91u+x/X
>>672
あたり前だろw
君が何を言いたいのかワシには理解できん
674名前は開発中のものです。
垢版 |
2023/12/15(金) 12:39:00.37ID:Bs7hsLvx
>>673
じゃあお前こそ>>651から完全にズレますね
2023/12/15(金) 12:41:07.90ID:+91u+x/X
>>674
posに関して俺はこう使うとボヤイた事をお前がただ勘違いしてるだけだろ?w
676名前は開発中のものです。
垢版 |
2023/12/15(金) 12:43:38.68ID:Bs7hsLvx
>>675
要するに>>651と無関係のことをお前は言ったということですか?
俺はてっきり関連づいてたと思った
勘違いだったのか
2023/12/15(金) 12:47:01.85ID:+91u+x/X
>>676
本文の趣旨にレスしたわけではない、ただposのことに関しては無関係ではないから一応アンカー打っといただけだ
お前、俺との数回のやり取りでそのくらい気付けよw
678名前は開発中のものです。
垢版 |
2023/12/15(金) 12:48:39.20ID:Bs7hsLvx
>>677
まぁposに恐らくtransformを入れた>>651のやつが悪いw
2023/12/15(金) 12:50:50.22ID:+91u+x/X
>>678
早く言えばそうかもなw
まだ初心者だからしょうがない
680651
垢版 |
2023/12/15(金) 14:10:29.68ID:6j0/phFs
混乱させてすみません。私のせいで^^;
でも理解しました。

説明しますと[SerializeField]したtransform型のposという変数を自分で作り
そのposにアタッチしたオブジェクトの座標を利用する場合、
pos.transformという記述が成り立つわけです。

それは自オブジェクトの座標情報であるtransform.positionとは
ぜんぜん違うものなのでした。

完全に理解しました。自分の成長が楽しい毎日です。
このスレの皆様のおかげです。ありがとうございます。
(もちろん自分でもブログとか書籍とか色々調べて勉強してます)
2023/12/15(金) 14:48:24.93ID:+KMPylQT
えーんやで?授業料は忘れずにワイに払ってくれよ?m9⎛˶◜◡◝˶⎞ドーン!>>680
682名前は開発中のものです。
垢版 |
2023/12/15(金) 15:06:18.18ID:I8W32+mC
>>681
このハゲ!
2023/12/15(金) 15:07:50.53ID:+KMPylQT
  彡 ⌒ ミ   禿げてねーよ!死ね!
 ⎛´・ω・`⎞  
  /⌒ヽ_.ィ、~;y=ー(゚д゚)・・∵. ドーン!>>682
( r.     )^  / )
 ヽノノー◆-l     //
   |__/_/
   └一'一
684名前は開発中のものです。
垢版 |
2023/12/15(金) 19:35:56.17ID:XDSucvvA
こんばんは
画面内のobjをトランスフォームで向きを変えたいのですが
vector3(x,y,z)で回転できるおもたら位置が変わるだけみたいなんです
以上よろしくお願いします
685名前は開発中のものです。
垢版 |
2023/12/15(金) 19:48:39.55ID:Bs7hsLvx
>>684
transform.rotationにアクセスする必要がある
それはとても難しい
じっくり勉強してくれ
基本的にはquaternionの各種メソッドを使うことになる
686名前は開発中のものです。
垢版 |
2023/12/15(金) 20:02:13.46ID:XDSucvvA
>>685
まじですけ
動きは不要で、たとえば傾いたキューブを生成したいだけなんですねんど
687名前は開発中のものです。
垢版 |
2023/12/15(金) 20:07:40.65ID:Bs7hsLvx
>>686
その場合はシーンビューで回転ボタン押してマウスでオブジェクトを回転させるか
インスペクターのrotationの値を変えるかすればいい
688名前は開発中のものです。
垢版 |
2023/12/15(金) 20:12:38.85ID:XDSucvvA
>>687
後出しですみません
例えば敵キャラがシーン内のランダムな位置に、スクリプトでスポーンされるとおもてください
そのときの敵キャラの姿勢がさまざまなランダム傾きで出現したいわけです
689名前は開発中のものです。
垢版 |
2023/12/15(金) 20:13:16.43ID:Bs7hsLvx
>>686
その前に「生成」ってゲーム実行中か実行前かどっち?
実行前の配置のことなら
>>687これで

実行中の生成ならやっぱり
>>685これになる
690名前は開発中のものです。
垢版 |
2023/12/15(金) 20:14:44.87ID:Bs7hsLvx
>>688
生成したと同時にtransform.rotationにアクセスする必要がある
Instantiate関数で直接指定することもできるが同じだ
691名前は開発中のものです。
垢版 |
2023/12/15(金) 20:23:10.48ID:XDSucvvA
>>690
ともあれtransform.rotationを試行してみます
ありがとうございます
692名前は開発中のものです。
垢版 |
2023/12/15(金) 20:26:15.07ID:Bs7hsLvx
>>691
https://teratail.com/questions/234160
これはZ軸だけをランダムにしてる
Instantiateの中に直接入れてるやり方
693名前は開発中のものです。
垢版 |
2023/12/15(金) 22:52:15.28ID:XDSucvvA
>>692
myCube.transform.rotation=Quaternion.Euler(x,y,z);
で無事にやれました
ありがとうございます
694名前は開発中のものです。
垢版 |
2023/12/15(金) 22:53:46.53ID:Bs7hsLvx
>>693
よかった
2023/12/16(土) 01:54:43.32ID:gIZWzQja
すみません、colliderは自分2Dしか触ってないので
他のcolliderのことはわからないんですが
オブジェクトにアタッチしている
box collider 2Dのサイズをゲーム中に変更することを考えています。
例えば、プレイヤーがアイテム取ったら大きくなった、みたいな時に
当たり判定のサイズも大きくしたい、とか。

で、このbox collider 2Dのサイズの数値(X、Y)を増減させると
画像の中心を軸にcolliderの面積が狭くなったり広くなったりするじゃないですか?
ということは、用意するプレイヤーの画像も四角の画像に対して中心にプレイヤーを置いた(描いた)方がいいんでしょうか?
自分の今のイメージでは、地面に立たせるんで画像の下側にプレイヤーをくっつけとくイメージなんですが。
696名前は開発中のものです。
垢版 |
2023/12/16(土) 03:25:10.88ID:tUzOaXG5
UE5の最新グラフィクスを使いこなすための4個の勘所 [CEDEC+KYUSHU 2023] - UE5グラフィックに関する真実を大暴露した注目のスライドが公開!
https://3dnchu.com/archives/4-intuitions-for-using-the-latest-ue5-graphics/
2023/12/16(土) 07:33:07.45ID:2zt7osoY
>>695
コライダーの仕様はその通り。
足か中心かは、ゲーム仕様次第なので好きにするがよろし。
2023/12/16(土) 08:32:41.57ID:3JA70p7K
ピボット調べれば仕合せになれるよ
あたコライダーとキャラのMeshがどういう親子関係なのか考えればScale変更で同じ大きさに変更される
699名前は開発中のものです。
垢版 |
2023/12/16(土) 13:24:51.11ID:Zp4P7wF2
こんばんは今日もお世話なります
たとえばボクサーのようにパンチを繰り出す敵がいるとします
軽くジャブを打っているとき
ラッシュでバンバン打ってくるとき
こうしたランダムな疎密を表現するよい手法はありますけ
単純に間隔速度でやると一定間隔になってしまいつまらない
以上よろしくお願いします
700名前は開発中のものです。
垢版 |
2023/12/16(土) 14:11:21.87ID:pwyM23oP
>>699
それは遅延実行のテクニックが分かりやすい
パンチを打ち一定時間経った後またパンチ発射可能フラグをtrueにする
その時間をランダムに設定するとリアルっぽくなる
俺はいつもDotweenのDOVirtual.DelayedCallを使ってる
unityデフォルトのシステムならコルーチンがいいのではないか
2023/12/16(土) 14:15:25.18ID:YLwqXOdz
>>699
まず人間の心理を理解するとこうなる
遠い距離の時は様子見、距離を測るため、牽制も含めジャブを打つ、敵が至近距離になるとジャブを含め連打も打つ
プログラムはランダムレンジを永遠に繰り返す
0から99までの中で遠い距離ならジャブの割合が10ボディージャブが5ストレートが2フックが2何もしないが81、至近距離ならジャブが10フックが30ストレートが20アッパーが10ボディフック何もしないが30とか。
ただこれだけだと永遠に体力ある人になっちゃうから体力ゲージによって割合を変える
これはただ攻撃だけのプログラムだからガードとか相手が打ってきたら避けるとか体力ない時は逃げ回るとか色々混ぜ合わせるのも必要だな
本格的に作ると複雑なプログラムになるよ
上に書いたパンチの割合は適当だから自分で調整すると良い
参考になるか分からないけど思想はこんな感じだと思う
702名前は開発中のものです。
垢版 |
2023/12/16(土) 14:15:25.62ID:pwyM23oP
遅延実行使わずに作るならfloat型のタイマーとかフラグ、if文を用意しないといけないから
やっぱり俺は遅延実行のほうが優れてると考えてる
2023/12/16(土) 14:28:33.31ID:JuEszUdt
ifやらフロートやらめんどうくさぁい
2023/12/16(土) 20:45:43.62ID:gIZWzQja
すみません、自分がやろうとしていることが可能かどうか教えてください。
ひとつのオブジェクトの大きさがゲーム中に変化するので
それに合わせてそのオブジェクトの中で
Box Colliderによる当たり判定の位置とサイズを切り替えたい。
例えば、スーパーマリオとか最初キャラも判定サイズも小さいけど
キノコ食べたら2倍になるじゃないですか?
その時当たり判定諸々も変更すると思うんです。
オブジェクトそのものを別に要して切り替えるのも有りですが
事情があって、ひとつのオブジェクトの中でサイズをガンガン変更したいと思っております。

A、オブジェクトにアタッチしているBox Collider 2DのOffsetとSizeの情報(値)を毎回代入して変更、
 対応する。( getcomponentでBox Collider 2DのoffsetとSizeの数値を一度に変えることができますか?という質問)
B、そのオブジェクトにあらかじめ当たり判定用のいくつかの子オブジェクト(Box Collider2Dアタッチ済み)を作っておき、
  その都度必要とする子オブジェクトの当たり判定を指定してやる(Aが不可能(or処理として好ましく無い場合の代替案です)。

どっちもできるよって場合は、どちらのほうがベターか。
よく使われる方法がどっちなのか教えてほしいです。
705名前は開発中のものです。
垢版 |
2023/12/16(土) 20:53:04.62ID:pwyM23oP
>>704
よく分からんけどマリオみたいなの作りたいならマリオのスケールを
変えたら持ってるコライダーのスケールも自動的に変わるけど
それじゃダメなのか?
2023/12/16(土) 21:32:25.68ID:gIZWzQja
>>705
TransformコンポーネントのScaleを変更する話ですよね
でも当たり判定自体が用意した画像のサイズでは無いんです。
例えばチビマリオ用に用意した画像は正方形でもBox Colliderは長方形に設定してたとします。
デカマリオになった時の画像は長方形のを用意してるんだけど
Box Colliderはその長方形の画像に対して小さな正方形だったりするわけです(例えばの話です。
そういう場合ってもうScaleでデカくしたら〜では対応できないと思うんですが違いますか?
Box Colliderのほうで対処したほうがいいと思いまして質問させて頂きました。
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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