【ゲームエンジン】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/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だとよくやると思うんけんど
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。