■ このスレッドは過去ログ倉庫に格納されています
【ゲームエンジン】Unityなんでも質問スレpart12
- 1 :名前は開発中のものです。:2023/11/06(月) 16:50:23.83 ID:aWH6Xwln.net
- フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートは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
- 769 :名前は開発中のものです。:2023/12/20(水) 07:03:42.63 ID:rcYWDYRg.net
- すみません、
public GameObject targetObj;
と
[SerializeField] GameObject targetObj;
このどちらの記述方法でもインスペクタにtargetObjの枠が生成されますよね?
なにか違うんでしょうか。
使い分けとかあるんでしょうか?
- 770 :名前は開発中のものです。:2023/12/20(水) 07:44:58.98 ID:ggPGSH2z.net
- >>769
上のはオブジェクト指向においてそのメンバが他のクラスにも公開されることを
意味してて
下のはオブジェクト指向においてそのメンバが公開されていない、つまり
「隠蔽」されていることを意味してる
下のは「隠蔽を維持したままインスペクターに表示させたい」という仕様
エキスパートのコードを見ると下のコードが書かれることが多い
そういうのはオブジェクト指向といって主に複数人開発で用いられる
俺はぼっち開発なのでそんなの気にしたことない
余裕で上のやり方を使っている
- 771 :名前は開発中のものです。:2023/12/20(水) 07:51:51.43 ID:C7Jnfw35.net
- >>769
パブリックは他のスクリプトからでもそのプロパティを使えるようになる
シリアライズフィールドはインスペクターで値を変更できるようになる他のスクリプトからは使えない
プロがシリアライズフィールドを使う理由は他のスクリプトからそのプロパティを変更されて悪影響を及ばされる可能性があるから
外部に出すプロパティとそのスクリプトでしか使わないプロパティをきちんと分けてる
- 772 :名前は開発中のものです。:2023/12/20(水) 08:38:24.68 ID:tcfIGz3i.net
- >>768
大丈夫。>757の質問が意味不過ぎて例題にならない
- 773 :名前は開発中のものです。:2023/12/20(水) 09:17:17.08 ID:C7Jnfw35.net
- Unityのエディター拡張で3DViewPortって作れるんだっけ?
- 774 :名前は開発中のものです。:2023/12/20(水) 09:22:10.77 ID:wQ4ITWMI.net
- コードをうまく言語化して説明できないという事は
考えが整理できてないからまず書き出して整理してみよう
というあるあるだろ
- 775 :名前は開発中のものです。:2023/12/20(水) 09:26:03.26 ID:wQ4ITWMI.net
- >>773
できるよ
でも拡張で作ると基本的にインスペクタでいじれないから結局あまり意味ない
- 776 :名前は開発中のものです。:2023/12/20(水) 09:34:46.40 ID:wQ4ITWMI.net
- レベルエディタレベルのものをもう一画面追加できるならむしろ聞きたいけど
- 777 :ドーンおじ:2023/12/20(水) 10:57:43.83 ID:z+oVE4GA.net
- 裏コード777!m9⎛˶◜◡◝˶⎞ドーン!
- 778 :名前は開発中のものです。:2023/12/20(水) 12:06:03.92 ID:C7Jnfw35.net
- >>775
どうやってやるか知ってる?
まだ構想段階だけどプレハブモデルを開いてそれだけ表示するビューを作りたいなぁと思ってる
- 779 :名前は開発中のものです。:2023/12/20(水) 12:12:41.81 ID:C7Jnfw35.net
- プレハブビューみたいな感じ
- 780 :名前は開発中のものです。:2023/12/20(水) 16:21:49.58 ID:rcYWDYRg.net
- >>770
>>771
皆様、丁寧に教えてくだってありがとうございます。
なんとなく理解できました。
触らせたくないなら別に前者でもprivate GameObject targetObj;とすればいいんじゃないかと思ったんですが
なるほど、privateで宣言するとインスペクタに表示されないんですね。。
つまり、後者はInspectorからアクセスしたいけども
他のスクリプトからは触れさせたくない、要はインスペクタで触りたいけど、privateでお願いって時には
[SerializeField] を利用するんですね。
だとすると自分の様な初心者にはprivateであるべき状況というのが
まだ出くわしたことないし、その想像もできないんで
>>770さんみたく前者の方法で問題ない感じですね。自分もぼっち開発ですし。
またひとつ成長できました、ありがとうございます!
- 781 :名前は開発中のものです。:2023/12/20(水) 16:22:37.10 ID:2Ax+7Ufb.net
- >>780
おうがんばれ
- 782 :名前は開発中のものです。:2023/12/20(水) 16:23:13.46 ID:rcYWDYRg.net
- 早速、今まで理由もわからず[SerializeField] 型名 変数名; と宣言してたものを
すべてpublic 型名 変数名;に置き換えてみましたが
今の所何も変わらず正常に動いてくれています。
基本的に、[SerializeField] で宣言してたものをpublicに変更しても
そのアタッチしたものが他所から触れる様になるだけで
それ以外は別に一緒で支障が出ることなく変更できる認識でいますが
それで問題はないですか?
[SerializeField] じゃないとインスペクタに表示されないとか
宣言できないとかいうケースないですよね??
- 783 :名前は開発中のものです。:2023/12/20(水) 16:25:34.25 ID:rcYWDYRg.net
- 例えば「ゲーム制作してるならセーブのシステム作る時とか、絶対[SerializeField]使うことになるから」、とか。
- 784 :名前は開発中のものです。:2023/12/20(水) 16:36:51.90 ID:2Ax+7Ufb.net
- 問題ないよ
上でも言った通り他のスクリプトから触れちゃうから取り扱い注意しないと変な値を入れて不具合出るかもって感じ
- 785 :名前は開発中のものです。:2023/12/20(水) 16:41:48.63 ID:rcYWDYRg.net
- >>784
ありがとうございます!
- 786 :名前は開発中のものです。:2023/12/21(木) 00:28:30.61 ID:2yqws0uM.net
- >>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);
}
}
}
- 787 :名前は開発中のものです。:2023/12/21(木) 00:29:32.69 ID:2yqws0uM.net
- 無茶評判悪くて使ってくれない
- 788 :名前は開発中のものです。:2023/12/21(木) 06:24:35.71 ID:/spufi4i.net
- >>786
めちゃくちゃ助かります!
ありがとうございます!
- 789 :名前は開発中のものです。:2023/12/21(木) 08:30:53.17 ID:2yqws0uM.net
- >>788
あと
void OnDestroy()
{
if (viewportCamera != null)
{
DestroyImmediate(viewportCamera.gameObject);
}
if (prefabInstance != null)
{
DestroyImmediate(prefabInstance);
}
}
しないと解放されないしいい事なんかない
モーション再生したりとか色々自力になるし
- 790 :名前は開発中のものです。:2023/12/21(木) 08:32:41.26 ID:/spufi4i.net
- >>789
なるほど
それはそのウィンドウ閉じたときで良いんですよね?
- 791 :名前は開発中のものです。:2023/12/22(金) 06:47:26.04 ID:BHw2hwhe.net
- すみません、素朴な疑問なんですけど
Input.GetKey("space");って今のUnityじゃエラーになるんですか?
Input.GetKey("KeyCode.Space");なら動きました。
どういうことでしょう?
- 792 :名前は開発中のものです。:2023/12/22(金) 07:31:08.46 ID:5SOhTIkJ.net
- そりゃエライコッチャ
- 793 :名前は開発中のものです。:2023/12/22(金) 07:58:17.85 ID:2bdzIp1f.net
- >>791
下のコードは何かの間違いじゃないか?
俺の知識では動く道理がない
- 794 :名前は開発中のものです。:2023/12/22(金) 08:24:48.28 ID:OLG1WtwV.net
- KeyCode.Spaceという名前をつけたんだろw
- 795 :名前は開発中のものです。:2023/12/22(金) 09:16:45.04 ID:bOlEfo0c.net
- 役所とかの記入例に
山田太郎
ってあるとそのまま書いちゃうタイプとか
- 796 :名前は開発中のものです。:2023/12/22(金) 09:46:30.94 ID:E/2yW4GT.net
- ジェンダーレスの観点から最近の記入例の名前って、、、
- 797 :名前は開発中のものです。:2023/12/22(金) 17:17:43.62 ID:BHw2hwhe.net
- すみません、徹夜明けで>>791は寝ぼけていた様です。
言いたいことは、
if(Input.GetKeyDown( )){
処理
}の記述をしたとして、
if(Input.GetKeyDown("Space"))はエラーにならないのに
if(Input.GetKeyDown("UpArrow"))はエラーになるんです。
両方、KeyCodeに書かれてるやつです。
なぜUpArrowは「入力キーの名前: UpArrow が不明です」とエラーが出るんです?
なのでUpArrowを使いたい時は
Input.GetKeyDown(KeyCode.UpArrow)という記述方法にしてるんです。
これだと動きます。
どーいうことですか?
- 798 :名前は開発中のものです。:2023/12/22(金) 17:21:22.32 ID:BHw2hwhe.net
- >>794
俺より初心者ですか?
これでも正常に動くんですが。
if(Input.GetKeyDown(KeyCode.Space))
恥かかない様にここ見ておいた方がいいですよ。
https://raruton.com/unity-how-to-use-input-key/
↓抜粋しときますね
>Inputクラスを使用することでキーボードを検出することができます。
>各キーコードは、以下の***の部分に変えることで使用することができます。
>Input.GeyKey(KeyCode.***)
>矢印キー
>上キー UpArrow
>下キー DownArrow
>右キー RightArrow
>左キー LeftArrow
- 799 :名前は開発中のものです。:2023/12/22(金) 17:26:43.86 ID:BHw2hwhe.net
- ああ、KeyCode.***をダブルクオートで囲んでるのは間違いだよって
言いたかったんですね。それは失礼しました。
では、ダブルクオートで囲む場合の
上キー取得はどう書けばいいですか?
なぜ"UpArrow"でいけないのか理由を知りたいです。
- 800 :名前は開発中のものです。:2023/12/22(金) 18:16:58.93 ID:E/2yW4GT.net
- さぁ
恥かかないようにプロ
ドーンおじの出番だぞ
- 801 :ドーンおじ:2023/12/22(金) 21:09:25.57 ID:8+fTW2o0.net
- |._、|
||不|| 呼ばれて飛び出てドドドドーン!
||審||
||者||⌒ ミ
||で||д・`) いや、””で囲っても動くって知らんかったわ
||す|| とノ マジならヒッパルコスショック級の大発見だよ!
|  ̄.|ωJ
- 802 :名前は開発中のものです。:2023/12/22(金) 22:57:20.07 ID:g3YA246s.net
- そういう時プログラマーはKeyCode.UpArrowの中身を見てみようと思うもんだよ
- 803 :名前は開発中のものです。:2023/12/22(金) 23:57:39.56 ID:8Y1XMAir.net
- 自信満々に「恥かかない様にここ見ておいた方がいいですよ(キリッ」とかいうから見てみたら個人のHPか
スクリプトリファレンスでも持ってきたのかと思った
で、ちょっと見てきたが、stringで指定する場合はInput Managerのスクリプトリファレンスにあるとおりの名称でないとダメみたいだな
出所のよくわからん情報を鵜呑みにする前に、正規の手順書を読んでおいた方がいいぞ
あとif(Input.GetKeyDown("Space"))は同様にエラー吐くはずだ(というか試したら吐いた)から、まだ何か間違ってそう
GetKeyDown("space")なら問題ない
- 804 :名前は開発中のものです。:2023/12/23(土) 18:59:12.82 ID:HGJpkM3P.net
- たぶん質問者を装った新手の荒らしだろう
普通の人は「恥かかない様にここ見ておいた方がいいですよ」とか絶対言わない
- 805 :名前は開発中のものです。:2023/12/23(土) 19:45:00.12 ID:JuXwVXQj.net
- >>799
ダブルクォートで囲う方はひとまず覚えなくて良いと思うけどな。
KeyCodeを引数として取る方があるならそちらを使うべきだ。
どのプログラム言語でもダブルクォートで囲むと文字列になるので実行するタイミングでないとエラーに気づかないよ。
KeyCodeを引数に取る方なら誤りがコーディング時にわかる。
Unity初心者なので推測だけど、他言語の経験からすると文字列を引数として取る場合はリフレクションで合致するメソッドを呼び出すことになるはず。
エラーになるのは合致するメソッドがないってことだろう。Input.GetKeyDownのソースコードを読むのが手っ取り早いかと思う。文字列からメソッド呼び出しをどのように組み立ててるのかわかればどういった文字列を渡せばいいか見えるだろう。
- 806 :名前は開発中のものです。:2023/12/24(日) 07:00:55.84 ID:QdSrzL7+.net
- 質問です
今ロードされているクラスやメソッド、プロパティなどを一括でリストアップする方法はありますけ
javascriptだとよくやると思うんけんど
- 807 :名前は開発中のものです。:2023/12/24(日) 10:02:59.82 ID:QdSrzL7+.net
- アイフォーンで旧5chのビューワてのは、mateしかないの?使いにくい
課金で快適なら払うから何かないですけ
- 808 :ドーンおじ:2023/12/24(日) 10:44:30.80 ID:TUdbxFTN.net
- >>807
Channelerオススメ!
でも無いなら自分で作ればいいじゃない!の精神がプログラマには大事!m9⎛˶◜◡◝˶⎞ドーン!
- 809 :名前は開発中のものです。:2023/12/24(日) 11:22:23.36 ID:uDi0Ooh/.net
- >>808
それは作ったことのある人の言う事
で、きみ作ったのか?
口だけなら何でも言えるw
- 810 :名前は開発中のものです。:2023/12/24(日) 11:34:10.24 ID:Ide0h4st.net
- すみません、プレイヤーのBox Collider 2Dと
地面のBox Collider 2Dの間に「0.05fほどの隙間」が出来てるんです。
ものスゴくズームアップしないとわからないくらいですが
プレイヤーが0.05浮いてるんです。これはどうしようもないんでしょうか?
それぞれ画像幅ギリギリまでBox Collider 2Dの四角は設定しています。
なのに浮いてるんですけど、これはこんなもんだと諦めるもんでしょうか。
気になってるんですが。。。
ちなみに、もちろんですがプレイヤーのBox Collider 2Dの底を画像よりもえぐると
画像が下がり地面に乗ってる様になりますが、Box Collider 2Dは地面に触れていません。
なにが問題なんでしょうか?
- 811 :名前は開発中のものです。:2023/12/24(日) 11:45:51.22 ID:uDi0Ooh/.net
- 何か問題があるのかが問題だな
- 812 :名前は開発中のものです。:2023/12/24(日) 12:01:39.54 ID:hh66dHMo.net
- >>810
自分が作ろうとするものに障害が出てるのか?出ていないなら無視することをお勧めする。無視して次に取り掛かった方が良いかと。
- 813 :名前は開発中のものです。:2023/12/24(日) 12:04:28.10 ID:Ide0h4st.net
- 自分のそれぞれのオブジェクトのせいかなと思って、
今新規でオブジェクトを作ってBox Collider 2DとRigidbody 2Dをアタッチして、
数値もなにも触らずに積み上げてみてるんですが、
まじで全部0.05ほど間隔あいて乗っかってます。。。
え、これBox Collider 2Dの仕様なんですか???
- 814 :名前は開発中のものです。:2023/12/24(日) 14:08:06.97 ID:QdSrzL7+.net
- >>808
channnelerての使いやすいけんど
ピンクBBSが追加できんとよ
- 815 :ドーンおじ:2023/12/24(日) 14:22:28.96 ID:TUdbxFTN.net
- >>814
キミがエロゲ開発者で市場調査の為にピンクBBSもチェックしたいというのなら褒めてやるが
風俗情報とかエロ画像とかエロ動画収集の為にピンクBBSが見たいとか云うのだったらお前は救いようがないぞ!m9⎛˶◜◡◝˶⎞ドーン!
- 816 :名前は開発中のものです。:2023/12/24(日) 14:38:33.23 ID:+fjq6R3r.net
- 実行すると0.0149くらい浮き上がるな。気にした事もなかったが仕様というか、
Physicsの性質を考えれば当然の結果。
Physicsは現実世界と全く異なりColliderが
接触したら接触したものを弾き続ける事で接触表現をしている。
ヘディングでボールをド突き続けてその場にとどまらせている様に
見せかけているようなもので、ある程度離れたら吹っ飛ばすのを止める。
計算上その許容範囲となる距離がそれというだけ。
- 817 :名前は開発中のものです。:2023/12/24(日) 14:45:18.52 ID:+fjq6R3r.net
- 因みにこの話は昔のblenderのwikiでBOSDというエンジニアが深堀りしたネタに書いてあった
今はもう見れないらしい
- 818 :名前は開発中のものです。:2023/12/24(日) 15:14:37.08 ID:+fjq6R3r.net
- ま、PhysX SDKでもDLして中身見てみたらいんじゃね?
初期値を設定するソースやプリプロセッサがありそう なきゃ弄れんが
- 819 :名前は開発中のものです。:2023/12/24(日) 16:20:49.31 ID:QdSrzL7+.net
- >>815
そんなお下劣なことしてませんよ
純粋にパパ活リサーチしてるんです
- 820 :名前は開発中のものです。:2023/12/24(日) 16:49:46.50 ID:Ide0h4st.net
- >>816
詳しい解説、ありがとうございます。
つまりBox Collider 2Dでは無く、
Rigidbody 2Dの仕様ということですね。
実際Rigidbody 2Dをつけていないオブジェクトどうしだと
再生後に弾きあいません。オブジェクトどうしがぴったりくっついて配置されてます。
(>>810の状況は再生前にぴったり合わせて配置していても再生後に隙間ができますので)
検索しても誰もそこに触れた話が無いので
皆さん、気にしたことないんですね。自分気になりますけど。。。
というわけでBox Collider 2Dの枠、下側は画像よりちょいサイズ小さく作るようにします。
- 821 :名前は開発中のものです。:2023/12/24(日) 16:57:22.08 ID:KwpGLxv5.net
- チュートリアルでもやってるやん
きちっとしたのより大まかな方がGame的にもいいって
チュートリアルやりなさい
- 822 :名前は開発中のものです。:2023/12/24(日) 19:48:16.57 ID:tcvjHcGu.net
- 物理エンジン自作すればいいよ
そしたら全部自分の想定通りにできるから
所詮他人の作ったものに載ってるんだから自分が合わせるしかない
作りたいものがそれと合わないなら物理エンジン自作すんの普通
- 823 :名前は開発中のものです。:2023/12/24(日) 20:55:57.14 ID:LoUQoouk.net
- >>822
さらっとすごいこと言ってるな
発想が天才すぎやろ
- 824 :名前は開発中のものです。:2023/12/24(日) 21:02:45.34 ID:tcvjHcGu.net
- 2D限定ならそんなに難しくないよ
- 825 :名前は開発中のものです。:2023/12/24(日) 21:13:48.80 ID:KwpGLxv5.net
- いや、ヤツには2Dとかカンケーないからね
- 826 :名前は開発中のものです。:2023/12/24(日) 22:11:14.10 ID:tcvjHcGu.net
- いつまでも文句ばかりつけてるし
折角教えてくれてる人すら小馬鹿にする
これくらいいわなきゃダメでしょ
- 827 :ドーンおじ:2023/12/24(日) 22:45:20.41 ID:TUdbxFTN.net
- 今日も元気だ暴飲暴食!スーパー玉出で豪遊してきた!
パーティーセット!ちらし寿司!ビール350㍑!これでたったの999円!m9⎛˶◜◡◝˶⎞ドーン!
ttps://i.imgur.com/cSGAUnA.jpeg
- 828 :名前は開発中のものです。:2023/12/24(日) 22:53:51.92 ID:KwpGLxv5.net
- 毎回コピペ貼って
つまらん人
- 829 :ドーンおじ:2023/12/24(日) 23:31:40.74 ID:TUdbxFTN.net
- 彡 ⌒ ミ コピペじゃねー!
⎛´・ω・`⎞
/⌒ヽ_.ィ、~;y=ー(゚д゚)・・∵. ドーン!>>828
( r. )^ / )
ヽノノー◆-l //
|__/_/
└一'一
- 830 :名前は開発中のものです。:2023/12/24(日) 23:46:27.70 ID:MZheNekv.net
- Quest民がご迷惑をおかけして誠に申し訳ございません
ドーン!!!言いたいだけで悪気は無いんです!!!!
- 831 :名前は開発中のものです。:2023/12/25(月) 11:12:59.02 ID:XFhImm+a.net
- 暴飲暴食で内耳がむくんでめまいでぶっ倒れて救急車よんだは
片方の耳が聞こえない
一週間入院だと
皆もきをつけよう
- 832 :名前は開発中のものです。:2023/12/25(月) 12:46:50.04 ID:sQ8Yj6Wl.net
- お大事に どーんおじさん
- 833 :名前は開発中のものです。:2023/12/25(月) 16:55:39.12 ID:3JGs8zzg.net
- すみません、Unityって
下からすり抜けられる床ってPlatform Effector 2Dで
簡単に作れるじゃないですか。
逆に上から(例えば下入力で)すり抜けて降りられる床を作るための
コンポーネントって無いんでしょうか?
前者に対応しているなら、後者にも対応してそうなんですが見当たらなくて。
で、無いなら無いで自分で作ろう(その時にBox Colliderの判定無くすとか)とは
思っていますが。前者の処理を考えるとえらくめんどくさい作業を強いる状況だなと
思わずにはいられません。
なので"すり抜けて下に降りられる床"を作るコンポーネントあるんじゃないの?
って気分で、相談させてもらいました。
ずばり、どうなんですか?
- 834 :名前は開発中のものです。:2023/12/25(月) 17:50:22.42 ID:UnlwkJ4/.net
- 反対にすりゃいいんじゃね?
- 835 :名前は開発中のものです。:2023/12/25(月) 20:01:49.19 ID:3JGs8zzg.net
- >>834
え、その発想はありませんでした。
コードで真反対にできるのかな??
試してみます。
- 836 :名前は開発中のものです。:2023/12/25(月) 20:02:25.64 ID:6JGNkNKZ.net
- >>835
普通1秒で気がつくと思うんだがw
- 837 :名前は開発中のものです。:2023/12/25(月) 20:05:45.89 ID:ZUSCK9s7.net
- ちなみに反転させると
アイテムとかモンスターまでつられて落ちるので要対策ですよ(経験者)
- 838 :名前は開発中のものです。:2023/12/25(月) 22:00:54.78 ID:3JGs8zzg.net
- んーー、ひっくり返すと言うやり方で試そうといろいろ構想したんですが
これ、オブジェクト自体をひっくり返す必要があるんですね。
自分のオブジェクトのコライダーは画像のサイズとは違うんで
そのとき敵が歩いてきた場合も考えたら床の高さ変えちゃダメなんで
positionも変更しないといけない。敵だけが降りるときもそうだし、
なんかいろいろ設定しなきゃならないんでめんどいかも。
そのオブジェクトが下に移動したいときは
シンプルに地面と接触しているときに
タグが地面のオブジェクトに対してはすり抜ける状態にする。
のほうがラクそうなんでそうすることにします。
- 839 :名前は開発中のものです。:2023/12/25(月) 22:25:23.52 ID:3JGs8zzg.net
- あらかじめ床をすり抜けないレイヤーとすり抜けるレイヤーを作っておいて
都度一時的に変更するとかいいですね。
- 840 :名前は開発中のものです。:2023/12/26(火) 00:42:22.47 ID:t091BZza.net
- >>839の方法、めっちゃ簡単だと喜んで実装してたら
Platform Effector 2Dをアタッチしていると
(厳密にはUsed By Effectorを有効にしてると)
なんとレイヤー側の設定が機能してくれない!!!
最悪!!!!!意味わからないです!
接触判定を消したい相手方を認識して
そのオブジェクトのUsed By Effectorのチェックを外すコードを
書かなきゃならない。
それを回避するためのレイヤー設定なのに!!!!!
なんだこれ。。。。
- 841 :名前は開発中のものです。:2023/12/26(火) 00:50:48.74 ID:t091BZza.net
- 初心者が一番避けたいことって、オブジェクトをまたいでなにかしたり、
別のオブジェクトを触ることなんですよ。
そこの理解がうやむやというか、理解が完璧じゃないんで。
自分のオブジェクト内で解決するコードや設定が一番嬉しいんです。
今回で言えば、床に立って床をすり抜けて下に降りるってことなんですが
床の情報をもらったり、情報を与えたり、しなくて済むのが一番なんです。
そしたらまずなにを考えるかというと、プレイヤーのオブジェクトの
あたり判定を数フレーム無くすってことです。そしたら通り抜け落ちるわけで。
でもそれをしたら、敵や敵の弾に対してもそのとき通り抜けちゃう。だからそれができんのです。
だから、床のみに対して衝突判定を消したいと。
レイヤーでわけて、自分のレイヤーを切り替えるだけで
床だけをすり抜けるプレイヤーに変われる、よし!って。
なのに、床の方にPlatform Effector 2Dをアタッチしてる。
そのPlatform Effector 2Dが邪魔をして、レイヤーの設定が機能しない!
unityさん、なぜそうした?意味わからないですよ!!
- 842 :名前は開発中のものです。:2023/12/26(火) 08:01:39.23 ID:VM1CwPbk.net
- Playerのレイヤーを変えればいいんじゃね
タグが生きてるならタグで判別とかして
- 843 :名前は開発中のものです。:2023/12/26(火) 09:25:30.15 ID:WTNSzRrk.net
- IgnoreCollision使うと特定のオブジェクトだけで済むしレイヤーを気にする必要もないのでオヌヌメ
https://docs.unity3d.com/ja/2019.4/ScriptReference/Physics2D.IgnoreCollision.html
- 844 :名前は開発中のものです。:2023/12/26(火) 09:36:26.94 ID:6Mei1LcW.net
- 単純に下押したらコライダーオフ(Triggerオン)でいいんじゃね?
- 845 :名前は開発中のものです。:2023/12/26(火) 09:51:45.01 ID:YGRlo2LK.net
- >>843
この方法が適切だと思う
- 846 :名前は開発中のものです。:2023/12/26(火) 09:52:25.59 ID:+4O6n+KM.net
- 下押したら触れてる間自キャラのColliderオフ
- 847 :名前は開発中のものです。:2023/12/26(火) 10:06:19.02 ID:9OPrva29.net
- PlatformEffector2DをGetComponentし、
下入力時のみsurfaceArcを0にします
それ以外では45にします。
それに加えて
子オブジェクトにプレイ以外の当たり判定をつけたコライダーをアタッチする
- 848 :名前は開発中のものです。:2023/12/26(火) 12:18:53.14 ID:YGRlo2LK.net
- >>846
それだと自分と自分以外のキャラの衝突が得られないだろ
- 849 :名前は開発中のものです。:2023/12/27(水) 04:56:37.80 ID:x8lTv7NR.net
- みなさま、ありがとうございます!いろんな案を助言くださり感謝します!
結局自分はどうしたのか聞いてください!
あれからずっと調べたり、試したり、何時間もやりました!
クリスマスイヴ、クリスマス、全部潰して、何時間もやりました!
その中でいくつか学んだことがあります!
まず、床を下から上に抜けるためのコンポーネントPlatformEffector2D!
こいつはsurfaceArcを150未満に設定して使うならクソでしかないです!
床のオブジェクトを並べて、その床を移動させている場合ですが
surfaceArcは150未満の床を並べていると、床のつなぎ目でストンと落ちる時があります!
繋げた床に使うのを想定してなかったのか、とんでもないバグです!
なので150以上にするしかありません!150以上なら問題ありません!
しかし!その場合は床の側面に当たり判定が残っており(そのために人はsurfaceArcを下げる)
接触すると押されます!つまり、PlatformEffector2Dの床のプレハブを並べた状況で
しかもその床が全体移動してる状況のゲームで、
下から上に抜ける場合!!つなぎ目の側面にプレイヤーが接触してしまうと押されて一瞬ブルっとするんです!
それを直そうとsurfaceArcを150から下げていくとさっき言ったつなぎ目から落ちる謎現象に悩むことになります!
ほんとクソです!!
しかし、>>847さんの「surfaceArcを0にします」の助言は目から鱗でした!
0にしたら床の判定自体が無くなるじゃないですか!!
床の上から下に降りる場合に0にして、そのあと150に戻せば無問題!!
素晴らしい!しかし、この方法は相手の床のオブジェクトにアタッチした
PlatformEffector2Dを触るので初心者にはしんどいです!
しかも!床はいくつものパーツに分かれています!なのでちょうどつなぎ目とかで
ふたつの床の間とかから下に降りようとした時とかなんか考えただけでしんどいです!
なので今回は採用できませんが、しかし、surfaceArcを0にしたらコライダーを全抜けできるというのは
この先お世話になる可能性もあるのでメモしておきました!ありがとうございます!
話は、続きます!
- 850 :名前は開発中のものです。:2023/12/27(水) 05:00:37.33 ID:x8lTv7NR.net
- >>844
>>846
その方法はまっさきに思いつくんですが、その間は床どころか他のオブジェクトとも
当たらなくなるのでまったく使えません!>>848さんの指摘通りです!
また、下を押した時に足元の床のコライダーをオフ、の場合も
ちょうど床と床の間だった場合は両方の床のコライダー触るの?とか、
床のコライダーオフにした時に敵や他のオブジェクトまでその床抜けちゃうじゃん!って
いろいろめんどうなので却下なのです!
- 851 :名前は開発中のものです。:2023/12/27(水) 05:24:45.66 ID:x8lTv7NR.net
- で、自分はどうやったのかというと、tagです!!
Physics2D.IgnoreCollisionです!
このPhysics2D.IgnoreCollision、すごいです!
指定したtagのオブジェクトとの接触判定を無くすのです!
相手のオブジェクトをゲットしたりする必要ありません!
極端な話「tag"床"と接触判定無くして〜」と、
こっちのスクリプトの中に書くだけで完結します!
すばらしい!
なのに検索してもほとんどの日本人がPhysics2D.IgnoreCollisionは使ってません!
解説が外人ばかりです!苦労しました!
おかげで、まだちょっと怪しいです!
とりあえず下を押したら、Physics2D.IgnoreCollisionを発動です!
床だけとの接触判定がなくなります!レイヤーと違って、なんの影響も受けません!
レイヤーはPlatformEffector2Dをアタッチしてると無視されるんでクソです!
こちらに報告に来ましたら、>>843さんがPhysics2D.IgnoreCollisionをオススメしてくださってました!
掲示板チェックしてればもっと早くPhysics2D.IgnoreCollisionにたどり着けたものを悲しい!
日本人ほとんど使ってないのに、そのメソッドを勧めてこられるとは
>>843さんやりますね!ありがとうございます!
今後もアドバイスよろしくお願いします!日本人unityやってんのか?ってくらい
新しい講座や解説見つかりませんので!
1日1歩です。苦しいです!でも少しでも進むと嬉しいです!
絶対に完成させます!Unityに負けないぞ!
- 852 :名前は開発中のものです。:2023/12/27(水) 05:33:18.65 ID:x8lTv7NR.net
- あと、皆さんに朗報です!
いつもお世話になってばかりなので
俺からも発見した情報を提供させていただきます!!
Box Collider 2Dの判定枠のフレームの色!!
変更する場所を突き止めました!!
このスレの皆さん、知らなかった情報ですよね??
共有します!
Edit → Project Settings → Physics 2D(3Dの方はPhysics) →Gizmos
colliderAwakeColorで、
すべての起動状態のコライダーの色を変更できますよ!
そして、colliderAsleepColorで
すべてのスリープ状態のコライダー色を変更できますよ!
以上です!
今日も徹夜でunityでした!おやすみなさい!
- 853 :名前は開発中のものです。:2023/12/27(水) 08:23:04.72 ID:hBPGPBCa.net
- おう、おやすみ
- 854 :ドーンおじ:2023/12/27(水) 08:35:57.54 ID:QiDO/Mvs.net
- もはや荒らしだよ!m9⎛˶◜◡◝˶⎞ドーン!
- 855 :名前は開発中のものです。:2023/12/29(金) 09:46:16.45 ID:V4EZgpRE.net
- 自分のパソコンのユーチューブアプリのことなんですけど
ケーポップと生着替えばっかり増えたなーとおもってたら
たまたま他の人のパソコンみてたらUnity教室や自作PCの動画ばかりでてくるんですよ
これって情報操作されてるおもうんだけど、平均的な内容に戻すにはどうすればよい
- 856 :名前は開発中のものです。:2023/12/29(金) 11:04:29.67 ID:04t/pbbA.net
- けーぽっぷとか生着替えの事を普段から検索してるからそうなるのでは。
GoogleアカウントやYoutubeアプリの設定に広告IDだか何だかをリセットするボタンがあった気がするから、それでリセットしたら?
- 857 :名前は開発中のものです。:2023/12/29(金) 11:54:47.75 ID:/gqFVo4/.net
- クッキー削除でよくね?
- 858 :名前は開発中のものです。:2023/12/29(金) 13:32:42.40 ID:V4EZgpRE.net
- ユーチューブだけじゃなくて、クロームでサーフィンするとあるサイトの広告バナーがDMMでお気に入り登録してあるリストと一致してるんです
かんぜんに情報が漏れているようです
- 859 :名前は開発中のものです。:2023/12/29(金) 13:34:07.32 ID:nhRZGt0c.net
- 何を今更
- 860 :名前は開発中のものです。:2023/12/29(金) 13:47:52.45 ID:9Oj8oP/q.net
- 自分で許可してないとそんな事にはならんがな
- 861 :名前は開発中のものです。:2023/12/29(金) 14:37:34.15 ID:c1FQEu/w.net
- >>858
てかUnityの質問と全然関係ないんだがw
- 862 :名前は開発中のものです。:2023/12/29(金) 15:54:46.99 ID:uwg3LpdB.net
- 荒らしたいだけでしょ
- 863 :名前は開発中のものです。:2023/12/29(金) 16:45:04.77 ID:c1FQEu/w.net
- やっぱりそうか
- 864 :名前は開発中のものです。:2023/12/30(土) 06:14:54.39 ID:wkut8Af6.net
- グラブルリリンクってUE5で開発してるんだな
- 865 :名前は開発中のものです。:2023/12/30(土) 06:39:23.10 ID:zcIk9hjr.net
- >>864
グラブルリリンクってUE5で開発してるんだよ
- 866 :名前は開発中のものです。:2023/12/30(土) 07:33:00.09 ID:4T+qqlz0.net
- 荒らし君必死やなw
- 867 :名前は開発中のものです。:2023/12/30(土) 07:43:48.16 ID:9Hoct9EU.net
- >>864
リリンク見るとUnityのお株奪って超えてる感あるな
もうUnityの優位性や立ち位置消えかけてね?
- 868 :名前は開発中のものです。:2023/12/30(土) 07:47:13.40 ID:gcDnSEKz.net
- 忍者くんのようなしつこさで草
必死過ぎじゃね?
総レス数 1001
334 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200