【ゲームエンジン】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/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だとよくやると思うんけんど
807名前は開発中のものです。
垢版 |
2023/12/24(日) 10:02:59.82ID:QdSrzL7+
アイフォーンで旧5chのビューワてのは、mateしかないの?使いにくい
課金で快適なら払うから何かないですけ
2023/12/24(日) 10:44:30.80ID:TUdbxFTN
>>807
Channelerオススメ!
でも無いなら自分で作ればいいじゃない!の精神がプログラマには大事!m9⎛˶◜◡◝˶⎞ドーン!
2023/12/24(日) 11:22:23.36ID:uDi0Ooh/
>>808
それは作ったことのある人の言う事
で、きみ作ったのか?

口だけなら何でも言えるw
2023/12/24(日) 11:34:10.24ID:Ide0h4st
すみません、プレイヤーのBox Collider 2Dと
地面のBox Collider 2Dの間に「0.05fほどの隙間」が出来てるんです。
ものスゴくズームアップしないとわからないくらいですが
プレイヤーが0.05浮いてるんです。これはどうしようもないんでしょうか?
それぞれ画像幅ギリギリまでBox Collider 2Dの四角は設定しています。
なのに浮いてるんですけど、これはこんなもんだと諦めるもんでしょうか。
気になってるんですが。。。

ちなみに、もちろんですがプレイヤーのBox Collider 2Dの底を画像よりもえぐると
画像が下がり地面に乗ってる様になりますが、Box Collider 2Dは地面に触れていません。

なにが問題なんでしょうか?
2023/12/24(日) 11:45:51.22ID:uDi0Ooh/
何か問題があるのかが問題だな
2023/12/24(日) 12:01:39.54ID:hh66dHMo
>>810
自分が作ろうとするものに障害が出てるのか?出ていないなら無視することをお勧めする。無視して次に取り掛かった方が良いかと。
2023/12/24(日) 12:04:28.10ID:Ide0h4st
自分のそれぞれのオブジェクトのせいかなと思って、
今新規でオブジェクトを作ってBox Collider 2DとRigidbody 2Dをアタッチして、
数値もなにも触らずに積み上げてみてるんですが、
まじで全部0.05ほど間隔あいて乗っかってます。。。

え、これBox Collider 2Dの仕様なんですか???
814名前は開発中のものです。
垢版 |
2023/12/24(日) 14:08:06.97ID:QdSrzL7+
>>808
channnelerての使いやすいけんど
ピンクBBSが追加できんとよ
2023/12/24(日) 14:22:28.96ID:TUdbxFTN
>>814
キミがエロゲ開発者で市場調査の為にピンクBBSもチェックしたいというのなら褒めてやるが
風俗情報とかエロ画像とかエロ動画収集の為にピンクBBSが見たいとか云うのだったらお前は救いようがないぞ!m9⎛˶◜◡◝˶⎞ドーン!
2023/12/24(日) 14:38:33.23ID:+fjq6R3r
実行すると0.0149くらい浮き上がるな。気にした事もなかったが仕様というか、
Physicsの性質を考えれば当然の結果。

Physicsは現実世界と全く異なりColliderが
接触したら接触したものを弾き続ける事で接触表現をしている。

ヘディングでボールをド突き続けてその場にとどまらせている様に
見せかけているようなもので、ある程度離れたら吹っ飛ばすのを止める。
計算上その許容範囲となる距離がそれというだけ。
2023/12/24(日) 14:45:18.52ID:+fjq6R3r
因みにこの話は昔のblenderのwikiでBOSDというエンジニアが深堀りしたネタに書いてあった
今はもう見れないらしい
2023/12/24(日) 15:14:37.08ID:+fjq6R3r
ま、PhysX SDKでもDLして中身見てみたらいんじゃね?
初期値を設定するソースやプリプロセッサがありそう なきゃ弄れんが
819名前は開発中のものです。
垢版 |
2023/12/24(日) 16:20:49.31ID:QdSrzL7+
>>815
そんなお下劣なことしてませんよ
純粋にパパ活リサーチしてるんです
2023/12/24(日) 16:49:46.50ID:Ide0h4st
>>816
詳しい解説、ありがとうございます。
つまりBox Collider 2Dでは無く、
Rigidbody 2Dの仕様ということですね。
実際Rigidbody 2Dをつけていないオブジェクトどうしだと
再生後に弾きあいません。オブジェクトどうしがぴったりくっついて配置されてます。
(>>810の状況は再生前にぴったり合わせて配置していても再生後に隙間ができますので)

検索しても誰もそこに触れた話が無いので
皆さん、気にしたことないんですね。自分気になりますけど。。。
というわけでBox Collider 2Dの枠、下側は画像よりちょいサイズ小さく作るようにします。
2023/12/24(日) 16:57:22.08ID:KwpGLxv5
チュートリアルでもやってるやん
きちっとしたのより大まかな方がGame的にもいいって

チュートリアルやりなさい
2023/12/24(日) 19:48:16.57ID:tcvjHcGu
物理エンジン自作すればいいよ
そしたら全部自分の想定通りにできるから
所詮他人の作ったものに載ってるんだから自分が合わせるしかない
作りたいものがそれと合わないなら物理エンジン自作すんの普通
2023/12/24(日) 20:55:57.14ID:LoUQoouk
>>822
さらっとすごいこと言ってるな 
発想が天才すぎやろ
2023/12/24(日) 21:02:45.34ID:tcvjHcGu
2D限定ならそんなに難しくないよ
2023/12/24(日) 21:13:48.80ID:KwpGLxv5
いや、ヤツには2Dとかカンケーないからね
2023/12/24(日) 22:11:14.10ID:tcvjHcGu
いつまでも文句ばかりつけてるし
折角教えてくれてる人すら小馬鹿にする
これくらいいわなきゃダメでしょ
2023/12/24(日) 22:45:20.41ID:TUdbxFTN
今日も元気だ暴飲暴食!スーパー玉出で豪遊してきた!
パーティーセット!ちらし寿司!ビール350㍑!これでたったの999円!m9⎛˶◜◡◝˶⎞ドーン!
ttps://i.imgur.com/cSGAUnA.jpeg
2023/12/24(日) 22:53:51.92ID:KwpGLxv5
毎回コピペ貼って
つまらん人
2023/12/24(日) 23:31:40.74ID:TUdbxFTN
  彡 ⌒ ミ   コピペじゃねー!
 ⎛´・ω・`⎞  
  /⌒ヽ_.ィ、~;y=ー(゚д゚)・・∵. ドーン!>>828
( r.     )^  / )
 ヽノノー◆-l     //
   |__/_/
   └一'一
2023/12/24(日) 23:46:27.70ID:MZheNekv
Quest民がご迷惑をおかけして誠に申し訳ございません
ドーン!!!言いたいだけで悪気は無いんです!!!!
831名前は開発中のものです。
垢版 |
2023/12/25(月) 11:12:59.02ID:XFhImm+a
暴飲暴食で内耳がむくんでめまいでぶっ倒れて救急車よんだは
片方の耳が聞こえない
一週間入院だと
皆もきをつけよう
832名前は開発中のものです。
垢版 |
2023/12/25(月) 12:46:50.04ID:sQ8Yj6Wl
お大事に どーんおじさん
2023/12/25(月) 16:55:39.12ID:3JGs8zzg
すみません、Unityって
下からすり抜けられる床ってPlatform Effector 2Dで
簡単に作れるじゃないですか。
逆に上から(例えば下入力で)すり抜けて降りられる床を作るための
コンポーネントって無いんでしょうか?
前者に対応しているなら、後者にも対応してそうなんですが見当たらなくて。

で、無いなら無いで自分で作ろう(その時にBox Colliderの判定無くすとか)とは
思っていますが。前者の処理を考えるとえらくめんどくさい作業を強いる状況だなと
思わずにはいられません。
なので"すり抜けて下に降りられる床"を作るコンポーネントあるんじゃないの?
って気分で、相談させてもらいました。
ずばり、どうなんですか?
2023/12/25(月) 17:50:22.42ID:UnlwkJ4/
反対にすりゃいいんじゃね?
2023/12/25(月) 20:01:49.19ID:3JGs8zzg
>>834
え、その発想はありませんでした。
コードで真反対にできるのかな??
試してみます。
2023/12/25(月) 20:02:25.64ID:6JGNkNKZ
>>835
普通1秒で気がつくと思うんだがw
2023/12/25(月) 20:05:45.89ID:ZUSCK9s7
ちなみに反転させると
アイテムとかモンスターまでつられて落ちるので要対策ですよ(経験者)
2023/12/25(月) 22:00:54.78ID:3JGs8zzg
んーー、ひっくり返すと言うやり方で試そうといろいろ構想したんですが
これ、オブジェクト自体をひっくり返す必要があるんですね。
自分のオブジェクトのコライダーは画像のサイズとは違うんで
そのとき敵が歩いてきた場合も考えたら床の高さ変えちゃダメなんで
positionも変更しないといけない。敵だけが降りるときもそうだし、
なんかいろいろ設定しなきゃならないんでめんどいかも。

そのオブジェクトが下に移動したいときは
シンプルに地面と接触しているときに
タグが地面のオブジェクトに対してはすり抜ける状態にする。
のほうがラクそうなんでそうすることにします。
2023/12/25(月) 22:25:23.52ID:3JGs8zzg
あらかじめ床をすり抜けないレイヤーとすり抜けるレイヤーを作っておいて
都度一時的に変更するとかいいですね。
2023/12/26(火) 00:42:22.47ID:t091BZza
>>839の方法、めっちゃ簡単だと喜んで実装してたら
Platform Effector 2Dをアタッチしていると
(厳密にはUsed By Effectorを有効にしてると)
なんとレイヤー側の設定が機能してくれない!!!
最悪!!!!!意味わからないです!
接触判定を消したい相手方を認識して
そのオブジェクトのUsed By Effectorのチェックを外すコードを
書かなきゃならない。
それを回避するためのレイヤー設定なのに!!!!!
なんだこれ。。。。
2023/12/26(火) 00:50:48.74ID:t091BZza
初心者が一番避けたいことって、オブジェクトをまたいでなにかしたり、
別のオブジェクトを触ることなんですよ。
そこの理解がうやむやというか、理解が完璧じゃないんで。
自分のオブジェクト内で解決するコードや設定が一番嬉しいんです。

今回で言えば、床に立って床をすり抜けて下に降りるってことなんですが
床の情報をもらったり、情報を与えたり、しなくて済むのが一番なんです。
そしたらまずなにを考えるかというと、プレイヤーのオブジェクトの
あたり判定を数フレーム無くすってことです。そしたら通り抜け落ちるわけで。
でもそれをしたら、敵や敵の弾に対してもそのとき通り抜けちゃう。だからそれができんのです。
だから、床のみに対して衝突判定を消したいと。
レイヤーでわけて、自分のレイヤーを切り替えるだけで
床だけをすり抜けるプレイヤーに変われる、よし!って。
なのに、床の方にPlatform Effector 2Dをアタッチしてる。
そのPlatform Effector 2Dが邪魔をして、レイヤーの設定が機能しない!
unityさん、なぜそうした?意味わからないですよ!!
842名前は開発中のものです。
垢版 |
2023/12/26(火) 08:01:39.23ID:VM1CwPbk
Playerのレイヤーを変えればいいんじゃね
タグが生きてるならタグで判別とかして
2023/12/26(火) 09:25:30.15ID:WTNSzRrk
IgnoreCollision使うと特定のオブジェクトだけで済むしレイヤーを気にする必要もないのでオヌヌメ
https://docs.unity3d.com/ja/2019.4/ScriptReference/Physics2D.IgnoreCollision.html
2023/12/26(火) 09:36:26.94ID:6Mei1LcW
単純に下押したらコライダーオフ(Triggerオン)でいいんじゃね?
845名前は開発中のものです。
垢版 |
2023/12/26(火) 09:51:45.01ID:YGRlo2LK
>>843
この方法が適切だと思う
2023/12/26(火) 09:52:25.59ID:+4O6n+KM
下押したら触れてる間自キャラのColliderオフ
2023/12/26(火) 10:06:19.02ID:9OPrva29
PlatformEffector2DをGetComponentし、
下入力時のみsurfaceArcを0にします
それ以外では45にします。

それに加えて
子オブジェクトにプレイ以外の当たり判定をつけたコライダーをアタッチする
848名前は開発中のものです。
垢版 |
2023/12/26(火) 12:18:53.14ID:YGRlo2LK
>>846
それだと自分と自分以外のキャラの衝突が得られないだろ
2023/12/27(水) 04:56:37.80ID:x8lTv7NR
みなさま、ありがとうございます!いろんな案を助言くださり感謝します!
結局自分はどうしたのか聞いてください!
あれからずっと調べたり、試したり、何時間もやりました!
クリスマスイヴ、クリスマス、全部潰して、何時間もやりました!
その中でいくつか学んだことがあります!
まず、床を下から上に抜けるためのコンポーネントPlatformEffector2D!
こいつはsurfaceArcを150未満に設定して使うならクソでしかないです!
床のオブジェクトを並べて、その床を移動させている場合ですが
surfaceArcは150未満の床を並べていると、床のつなぎ目でストンと落ちる時があります!
繋げた床に使うのを想定してなかったのか、とんでもないバグです!
なので150以上にするしかありません!150以上なら問題ありません!
しかし!その場合は床の側面に当たり判定が残っており(そのために人はsurfaceArcを下げる)
接触すると押されます!つまり、PlatformEffector2Dの床のプレハブを並べた状況で
しかもその床が全体移動してる状況のゲームで、
下から上に抜ける場合!!つなぎ目の側面にプレイヤーが接触してしまうと押されて一瞬ブルっとするんです!
それを直そうとsurfaceArcを150から下げていくとさっき言ったつなぎ目から落ちる謎現象に悩むことになります!
ほんとクソです!!
しかし、>>847さんの「surfaceArcを0にします」の助言は目から鱗でした!
0にしたら床の判定自体が無くなるじゃないですか!!
床の上から下に降りる場合に0にして、そのあと150に戻せば無問題!!
素晴らしい!しかし、この方法は相手の床のオブジェクトにアタッチした
PlatformEffector2Dを触るので初心者にはしんどいです!
しかも!床はいくつものパーツに分かれています!なのでちょうどつなぎ目とかで
ふたつの床の間とかから下に降りようとした時とかなんか考えただけでしんどいです!
なので今回は採用できませんが、しかし、surfaceArcを0にしたらコライダーを全抜けできるというのは
この先お世話になる可能性もあるのでメモしておきました!ありがとうございます!
話は、続きます!
2023/12/27(水) 05:00:37.33ID:x8lTv7NR
>>844
>>846
その方法はまっさきに思いつくんですが、その間は床どころか他のオブジェクトとも
当たらなくなるのでまったく使えません!>>848さんの指摘通りです!
また、下を押した時に足元の床のコライダーをオフ、の場合も
ちょうど床と床の間だった場合は両方の床のコライダー触るの?とか、
床のコライダーオフにした時に敵や他のオブジェクトまでその床抜けちゃうじゃん!って
いろいろめんどうなので却下なのです!
2023/12/27(水) 05:24:45.66ID:x8lTv7NR
で、自分はどうやったのかというと、tagです!!
Physics2D.IgnoreCollisionです!
このPhysics2D.IgnoreCollision、すごいです!
指定したtagのオブジェクトとの接触判定を無くすのです!
相手のオブジェクトをゲットしたりする必要ありません!

極端な話「tag"床"と接触判定無くして〜」と、
こっちのスクリプトの中に書くだけで完結します!
すばらしい!
なのに検索してもほとんどの日本人がPhysics2D.IgnoreCollisionは使ってません!
解説が外人ばかりです!苦労しました!
おかげで、まだちょっと怪しいです!
とりあえず下を押したら、Physics2D.IgnoreCollisionを発動です!
床だけとの接触判定がなくなります!レイヤーと違って、なんの影響も受けません!
レイヤーはPlatformEffector2Dをアタッチしてると無視されるんでクソです!

こちらに報告に来ましたら、>>843さんがPhysics2D.IgnoreCollisionをオススメしてくださってました!
掲示板チェックしてればもっと早くPhysics2D.IgnoreCollisionにたどり着けたものを悲しい!
日本人ほとんど使ってないのに、そのメソッドを勧めてこられるとは
>>843さんやりますね!ありがとうございます!
今後もアドバイスよろしくお願いします!日本人unityやってんのか?ってくらい
新しい講座や解説見つかりませんので!

1日1歩です。苦しいです!でも少しでも進むと嬉しいです!
絶対に完成させます!Unityに負けないぞ!
2023/12/27(水) 05:33:18.65ID:x8lTv7NR
あと、皆さんに朗報です!
いつもお世話になってばかりなので
俺からも発見した情報を提供させていただきます!!

Box Collider 2Dの判定枠のフレームの色!!
変更する場所を突き止めました!!

このスレの皆さん、知らなかった情報ですよね??
共有します!
Edit → Project Settings → Physics 2D(3Dの方はPhysics) →Gizmos
colliderAwakeColorで、
すべての起動状態のコライダーの色を変更できますよ!
そして、colliderAsleepColorで
すべてのスリープ状態のコライダー色を変更できますよ!

以上です!
今日も徹夜でunityでした!おやすみなさい!
2023/12/27(水) 08:23:04.72ID:hBPGPBCa
おう、おやすみ
2023/12/27(水) 08:35:57.54ID:QiDO/Mvs
もはや荒らしだよ!m9⎛˶◜◡◝˶⎞ドーン!
855名前は開発中のものです。
垢版 |
2023/12/29(金) 09:46:16.45ID:V4EZgpRE
自分のパソコンのユーチューブアプリのことなんですけど
ケーポップと生着替えばっかり増えたなーとおもってたら
たまたま他の人のパソコンみてたらUnity教室や自作PCの動画ばかりでてくるんですよ
これって情報操作されてるおもうんだけど、平均的な内容に戻すにはどうすればよい
2023/12/29(金) 11:04:29.67ID:04t/pbbA
けーぽっぷとか生着替えの事を普段から検索してるからそうなるのでは。

GoogleアカウントやYoutubeアプリの設定に広告IDだか何だかをリセットするボタンがあった気がするから、それでリセットしたら?
2023/12/29(金) 11:54:47.75ID:/gqFVo4/
クッキー削除でよくね?
858名前は開発中のものです。
垢版 |
2023/12/29(金) 13:32:42.40ID:V4EZgpRE
ユーチューブだけじゃなくて、クロームでサーフィンするとあるサイトの広告バナーがDMMでお気に入り登録してあるリストと一致してるんです
かんぜんに情報が漏れているようです
2023/12/29(金) 13:34:07.32ID:nhRZGt0c
何を今更
2023/12/29(金) 13:47:52.45ID:9Oj8oP/q
自分で許可してないとそんな事にはならんがな
2023/12/29(金) 14:37:34.15ID:c1FQEu/w
>>858
てかUnityの質問と全然関係ないんだがw
862名前は開発中のものです。
垢版 |
2023/12/29(金) 15:54:46.99ID:uwg3LpdB
荒らしたいだけでしょ
2023/12/29(金) 16:45:04.77ID:c1FQEu/w
やっぱりそうか
864名前は開発中のものです。
垢版 |
2023/12/30(土) 06:14:54.39ID:wkut8Af6
グラブルリリンクってUE5で開発してるんだな
865名前は開発中のものです。
垢版 |
2023/12/30(土) 06:39:23.10ID:zcIk9hjr
>>864
グラブルリリンクってUE5で開発してるんだよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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