生成位置のおかしい問題
c#
1 private void OnCollisionEnter2D(Collision2D collision) 2 { 3 if(collision.gameObject.tag == "Ground") 4 { 5 Instantiate(GroundEffect, collision.transform.position, Quaternion.identity); 6 } 7 } 8
なお、こちらを参考に作成しました。
設定とスクリプトはこのようにし、生成しています。が、生成位置が固定されており適応しているオブジェクトの場所で出現しなくなっています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/19 13:23
回答1件
0
ベストアンサー
生成位置が変わらないということは、transform.localPosition
に変化がないということだろうと思います。
このオブジェクトは、何か別のオブジェクトの子になってはいないでしょうか?スクリプトをアタッチしたオブジェクトのインスペクタを表示したままプレイモードで操作してみて、「Transform」の「Position」に変化がないようでしたら、そういう状況になっているものと思われます。
localPositionで得られる座標は、そのオブジェクトの親に対する相対位置となります。一方、positionは親子関係にかかわらずワールド座標を示しますので、こちらを使ってInstantiate(GroundEffect, transform.position, Quaternion.identity);
としてみてはいかがでしょうか。
投稿2018/06/19 20:54
総合スコア10807
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/19 23:30
2018/06/20 02:34
2018/06/20 04:06
2018/06/20 05:00
2018/06/20 11:01
2018/06/20 11:01
2018/06/20 11:29
2018/06/20 22:00
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。