回答編集履歴
2
質問内容取り違えてたので修正
answer
CHANGED
@@ -16,6 +16,9 @@
|
|
16
16
|
---
|
17
17
|
|
18
18
|
【追記分】
|
19
|
-
上記の方法で「穴の範囲」も求められ
|
19
|
+
上記の方法で「穴の範囲」も求められます(穴の中央座標と幅が分かればいい)。
|
20
|
-
|
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
質問の追記に対して回答
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飛ばした方が早いかもしれません。
|