質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1240閲覧

unityで周期境界条件を組み込むことはできますか?

miyoshino

総合スコア7

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2017/12/21 11:37

unityで周期境界条件を組み込めるか検討しています。
cubeを六つ配置して、箱を作り、中にsphereを置き、ランダムな方向ベクトルかつランダムな初速を与えて、sphereを発射させるプログラムを作りました。(ここまではできています。)
sphereは箱の中を運動し、壁に衝突すると跳ね返ります。
質問は、sphereが壁に衝突したら、跳ね返らず、反対側の壁から出現するようなプログラムを作るには、どうすればよいかということです。つまり、壁(cube)の周期境界条件を設定し、右の壁と左の壁、あるいは上の壁と下の壁を連結させるようなプログラムを記述したいです。
どのようなプログラミングをすればよいでしょうか。回答よろしくお願いします。言語はC#を使用しています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「周期境界条件」についてはよく分かりませんが、とりあえずこんな感じでしょうか。

  1. CubeのColliderのisTrrigerをオンにしてsphereが通過するようにする。
  2. 「OnTrigger〇〇」系メソッドを使って衝突判定を取得。

(複数の壁に同時衝突した場合のことを考え、最初に当たった壁だけで挙動するようにしておく)
0. 衝突時にsphereを対となる壁の位置に移動する。
(この場合、出てきた壁とは衝突しないようboolで分岐するなり何なりしておく)

「壁に半分埋まっている状態では反対側の壁から半分出ている」ように見せたい場合は、sphereを2個用意しておけばそれらしい挙動が作れると思います。
(最初に当たったsphereはそのまま通過させ、新しいsphereを同時に反対側から出す)

投稿2017/12/21 11:59

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

miyoshino

2018/01/10 06:20

回答ありがとうございました!プログラミングできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問