teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

質問内容取り違えてたので修正

2018/12/23 04:50

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -16,6 +16,9 @@
16
16
  ---
17
17
 
18
18
  【追記分】
19
- 上記の方法で「穴の範囲」も求められ(穴の中央座標と幅が分かればいい)ので
19
+ 上記の方法で「穴の範囲」も求められます(穴の中央座標と幅が分かればいい)
20
- 「全体範囲から候補を1つ決める→穴の範囲だっら再抽選」でもいいし、頑張って範囲計算してもいい
20
+ 後は穴の端の座標の中央より、求めXが大きか小さかを計算すればいいです
21
+ (例えば穴の端のX値が-2と2なら、中間値は`(Mathf.Abs(-2)+Mathf.Abs(2))/2.0f + -2`。
22
+  目的地座標のXがこれより小さければ-2、大きければ2にすればよい。Z値も同じ要領でいける)
23
+
21
- 穴が複数あるならnegitamaさんの回答のようにRay飛ばした方が早いかもしれません。
24
+ 但し穴が複数あるならnegitamaさんの回答のようにRay飛ばした方が早いかもしれません。

1

質問の追記に対して回答

2018/12/23 04:50

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -11,4 +11,11 @@
11
11
 
12
12
  // 目的地の座標にする
13
13
  Vector3 target = new Vector3 ( x, groundSize.y, z );
14
- ```
14
+ ```
15
+
16
+ ---
17
+
18
+ 【追記分】
19
+ 上記の方法で「穴の範囲」も求められる(穴の中央座標と幅が分かればいい)ので
20
+ 「全体範囲から候補を1つ決める→穴の範囲だったら再抽選」でもいいし、頑張って範囲計算してもいいし。
21
+ 穴が複数あるならnegitamaさんの回答のようにRay飛ばした方が早いかもしれません。